0

ワイヤ形式のモデル バインディングを使用する場合、モデルの検証をどのように処理しますか。検証の概要領域に検証メッセージを表示し、検証に失敗した影響を受ける入力フィールドを強調表示したいと考えています。

//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);
}
4

1 に答える 1

1

次のように、コントローラーで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 に表示されるエラーが追加されます。

于 2013-06-19T18:25:26.047 に答える