-1
私は2つのフィールドを持つビューを持っています。必要なフィールド検証は一方では有効であり、他方では有効ではありません。何か不足していますか?必要なフィールドの妥当性検査を選択的に行う
に動作していない:
<div class="form-group">
<div class="controls">
<label class="control-label" for="Selected Organizations">Selected Organization(s)</label>
<div class="panel panel-default">
<div class="panel-body" style="overflow-y: auto; max-height: 100px; min-height:50px" id="divSelOrgs">
@for (int i = 0; Model.Organizations != null && i < Model.Organizations.Count(); i++)
{
var org = Model.Organizations[i];
var checkedAttr = (org.Id != Guid.Empty) ? "checked='checked'" : "";
<div class="row">
<input type="hidden" name="Organizations.Index" value="@i" />
<input type="hidden" name="Organizations[@i].Name" value="@org.Name" />
<input type="hidden" name="Organizations[@i].Data" value="@org.Data" />
<div class="col-xs-1">
<input type="checkbox" name="Organizations[@i].Id" value="@org.Id" @checkedAttr data-org-selected="true" />
</div>
<div class="col-xs-11" data-toggle="tooltip" data-placement="top" title="@org.Data">@org.Name</div>
</div>
}
</div>
</div>
@Html.ValidationMessageFor(m => m.Organizations)
</div>
</div>
ワーキング:
<div class="form-group">
@Html.LabelFor(m => m.FirstName, new { @class = "control-label" })
@Html.TextBoxFor(m => m.FirstName, new { @class = "form-control", placeholder = "First name" })
@Html.ValidationMessageFor(m => m.FirstName)
</div>
モデルのコード:
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required(ErrorMessage = "The {0} field is required.")]
[Display(Name = "Selected Organization(s)")]
public List<OrganizationDTO> Organizations { get; set; }
ご質問は不明であるだろう。 'RequiredList'バリデーションが機能していないということですか?もしそうなら、 'RequiredList'は組み込みのMVCコンポーネントではありません。その属性のソースを確認して、それを正しく使用し、実際に正しく機能することを確認する必要があります。 –
@ChrisPratt私はそれをRequiredに変更しました。検証はまだ機能しません。 – TheFallenOne
必須はリストタイプでは機能しません。基本的には、リストのプロパティ自体が存在する必要があります。必ずしも1つ以上のアイテムがある必要はなく、空の場合でも常に存在します。 –