MVC连线格式模型的绑定和验证

本文关键字:绑定 验证 模型 格式 MVC | 更新日期: 2023-09-27 18:19:01

在使用有线格式模型绑定时如何处理模型验证?我希望在验证摘要区域中有验证消息,并突出显示验证失败的受影响的输入字段。

//Model
public class Container 
{
   List<Item> Items { get; set;}
}
//View
@Html.ValidationSummary()
@foreach (var item in Model.Items) { 
   <div>
   @<text><input type="hidden" name="container.Items[@item.Index].Property1" value = "@item.Property1" /></text>
   @<text><input type="text" name="container.Items[@item.Index].Property2" value = "@item.Property2" /></text>
   </div>
}
//Controller Action
[HttpPost]
public ActionResult DoSomething(Container container){
   //Call DB - retrieve DB messages - but then how do you add validation summary messages from DB exceptions.
   return view(container);
}

MVC连线格式模型的绑定和验证

您可以使用ModelState。在控制器中添加AddModelError,如下所示:

[HttpPost]
public ActionResult DoSomething(Container container){
   var error = Model.GetErrors();  //Change this to whatever call you need to validate the Container
   if(error.HasErrors)
   {
       ModelState.AddModelError("KEY",error.Message);
   }
   return view(container);
}

这将添加错误,将显示在ValidationSummary