【发布时间】:2022-02-26 17:45:29
【问题描述】:
我有一个奇怪的问题:一个模型有一个SelectList,但在POST 动作中,ModelState.IsValid 是假的,因为SelectList:
public class CarMakesViewModel
{
public Guid Id { get; set; }
public Microsoft.AspNetCore.Mvc.Rendering.SelectList Nationalities { get; set; }
public Guid NationalityId { get; set; }
}
在编辑视图中:
<div class="form-group">
<label asp-for="NationalityId" class="form-label required"></label>
<select asp-for="NationalityId" name="NationalityId" asp-items="Model.Nationalities" class="form-control "></select>
<span asp-validation-for="NationalityId" class="text-danger form-control-sm"></span>
</div>
控制器:
[HttpPost]
public async Task<IActionResult> Edit(CarMakesViewModel model)
{
if (ModelState.IsValid)
{
//Edit Code
return RedirectToAction("Index");
}
await GetSelectList(model);
return View(model);
}
在post 中,Nationality SelectList 为空,这很常见,但为什么Model.State.IsValid 总是等于false?
错误提示:
国籍是必填项
需要注意的是,选择选项通常以文本和值呈现。
【问题讨论】:
标签: c# asp.net asp.net-core .net-core asp.net-core-mvc