Проблемы с список dropdownlist с вставленной в ASP.NET сердечник в MVC
Я м применении Кодекса первый подход в asp.net сердечник в MVC
Я создаю выпадающий список(страна,штат и город в таблице в mvc, но не вставленные countryname,statename,cityname) в базе данных см. изображение вставленных данных в базе данных.
Менеджер.в CS
public class Manager { [Key] public int ManagerId { get; set; } public string ManagerName { get; set; } //Insertion in Manager table country state and city public int countryId { get; set; } public string countryname { get; set; } public int stateId { get; set; } public string statename { get; set; } public int cityId { get; set; } public string cityname { get; set; } } public class city { public int cityId { get; set; } public string cityname { get; set; } [ForeignKey("state")] public int stateId { get; set; } public virtual state states { get; set; } } public class state { public int stateId { get; set; } public string statename { get; set; } [ForeignKey("country")] public int countryId { get; set; } public virtual country countrys { get; set; } } public class country { public int countryId { get; set; } public string countryname { get; set; } }
DbContext можно.в CS
public class dbcontext : IdentityDbContext<Student> { public dbcontext(DbContextOptions<dbcontext> options) : base(options) { Database.EnsureCreated(); } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); } public virtual DbSet<Manager> manages {get;set;} public virtual DbSet<country> countrys { get; set; } public virtual DbSet<state> states { get; set; } public virtual DbSet<city> citys { get; set; } }
HomeController:
public class HomeController : Controller { private readonly dbcontext contxtclass; public HomeController(dbcontext contxtclass) { this.contxtclass = contxtclass; } [HttpGet] //not inserted countryname,stataname and cityname in database see the Referance image public IActionResult Create() { //bound the country table record List<country> countrylist = new List<country>(); countrylist = (from countrys in contxtclass.countrys select countrys).ToList(); countrylist.Insert(0,new country { countryname = "Select" }); ViewBag.listofcountry = countrylist; //bound the state table record List<state> statelist = new List<state>(); statelist = (from states in contxtclass.states select states).ToList(); statelist.Insert(0, new state { statename = "Select" }); ViewBag.listofstate = statelist; //bound the city table record List<city> citylist = new List<city>(); citylist = (from citys in contxtclass.citys select citys).ToList(); citylist.Insert(0, new city { cityname = "Select" }); ViewBag.listofcity = citylist; return View(); } [HttpPost] public IActionResult Create(Manager manager) { contxtclass.Add(manager); contxtclass.SaveChanges(); return View(); }
создавать.cshtml по
@model WebApplication2.Models.Manager @{ Layout = null; } <h2>Create</h2> <form asp-action="Create"> <div asp-validation-summary="ModelOnly"></div> <div> <label asp-for="ManagerName"></label> <input asp-for="ManagerName"/> <span asp-validation-for="ManagerName"></span> </div> <div> <div asp-validation-summary="ModelOnly"></div> <div> <label asp-for="countryname"></label> <select asp-for="countryId" asp-items="@(new SelectList(@ViewBag.listofcountry,"countryId","countryname"))"></select> </div> </div> <div> <div asp-validation-summary="ModelOnly"></div> <div> <label asp-for="statename"></label> <select asp-for="stateId" asp-items="@(new SelectList(@ViewBag.listofstate,"stateId","statename"))"></select> </div> </div> <div> <div class="alert-danger" asp-validation-summary="ModelOnly"></div> <div> <label asp-for="cityname"></label> <select asp-for="cityId" asp-items="@(new SelectList(@ViewBag.listofcity,"cityId","cityname"))"></select> </div> </div> <div class="form-group"> <input type="submit" value="Create" class="btn btn-default" /> </div> </form> <div> <a asp-action="Index">Back to List</a> </div>
дать значение ошибки не может быть нулевым???
При обработке запроса возникло необработанное исключение.
ArgumentNullException: значение не может быть null.
Имя параметра: items
Изображение Ошибки:
https://imgur.com/a/ENP8D2a
Что я уже пробовал:
Я пытаюсь вставить имя страны,имя штата,имя города, не вставленное в таблицу(менеджер)??