次の電話があります。
@Html.TextBoxFor(m => m.SelectedName)
@Html.TextBoxFor(m => m.Selections[0].Name)
SelectedName
どちらの場合も、と にName
それぞれ次の注釈を付けてタグ付けします。
[Required(ErrorMessage = "Please provide required value")]
ただし、SelectedName は目立たない適切な html 属性を出力します。
<input id="SelectedName" name="SelectedName" data-val="true" data-val-required="Please provide required value">
m.Selections[0].Name は次のように表示されます。
<input id="Selections_0__Name" name="Selections[0].Name" value="" type="text">
何を与える?このシナリオが MVC4 で見落とされているとは信じられません。かなり一般的な使用例のようです。配列である、または配列を含むビュー モデルを検証するにはどうすればよいですか?
=====================わかりやすくするためにViewModelのコードを追加して編集====================
public class ContainerVM
{
[Required]
public string SelectedName {get;set;}
public MemberVM[] Selections {get;set;}
}
public class MemberVM
{
[Required]
public string Name { get;set; }
}
=====================フォーム ====================
@using MyProject.Models;
@model ContainerVM
@{
ViewContext.FormContext = new FormContext(); //This is just a hack because the parent isn't defined yet.
}
@Html.TextBoxFor(m => m.SelectedCptGroupId)
@Html.TextBoxFor(m => m.CptGroupSelections[0].Name)