我有一個奇怪的問題:我有一個模型,它有一個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是 null 并且這是通常的但為什么Model.State.IsValid總是等于 false ?
錯誤說
國籍是必填項
需要注意的是,選擇選項通常使用文本和值呈現
uj5u.com熱心網友回復:
您是否嘗試應用[ValidateNever]屬性來洗掉Nationalities服務器端的驗證?
public class CarMakesViewModel
{
public Guid Id { get; set; }
[ValidateNever]
public Microsoft.AspNetCore.Mvc.Rendering.SelectList Nationalities { get; set; }
public Guid NationalityId { get; set; }
}
uj5u.com熱心網友回復:
你可能使用 net 6。你可以讓串列為空
public Microsoft.AspNetCore.Mvc.Rendering.SelectList? Nationalities { get; set; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/428785.html
標籤:C# 网 asp.net 核心 .net-core asp.net-core-mvc
