我有這兩個類: State和Station: public class State{ public int Id { get; set; } [Required] public string Code { get; set; } [Required] public string Name { get; set; } public virtual ICollection<Station> Stations { get; set; }}和public class Station{ public int Id { get; set; } [Required] public string Code { get; set; } [Required] public string Name { get; set; } [Required] public virtual State State { get; set; }}設計是“代碼優先”,我使用遷移來設置數據庫,它就像:車站表將 StateId 保存為外鍵,因為它應該我的StationsController.cs文件有一個Create方法,我用它ViewBag來列出這樣的狀態名稱:// GET: Stations/Create public IActionResult Create() { ViewBag.StatesList = _context.States.ToList(); return View(); }最后我的HttpPost Create方法[HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Create([Bind("Id,Code,Name,State")] Station station) { if (ModelState.IsValid) { _context.Add(station); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } return View(station); }我的create.cshtml文件有這樣的<select>標簽: <div class="form-group"> <label asp-for="State" class="control-label"></label> <select asp-for="State" asp-items="@(new SelectList(ViewBag.StatesList, "Id", "Name","State"))" ></select> <span asp-validation-for="State" class="text-danger"></span> </div>我面臨的問題是,單擊 后submit,我的ModelState.isValid遺體false和State字段null如下圖所示:狀態字段為空在Controller已經自動生成的,只有兩件事情我已經改變了:第一個是,我已經添加了ViewBag.StateList在Create()方法和第二個是我加了State現場Create([Bind("Id,Code,Name,State")]。
- 2 回答
- 0 關注
- 271 瀏覽
添加回答
舉報
0/150
提交
取消