У меня есть следующий вызов:Ненавязчивый прослушивают, когда массив участвует
@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]. Отображать следующее:
<input id="Selections_0__Name" name="Selections[0].Name" value="" type="text">
Что дает? Я не могу поверить, что этот сценарий был пропущен в MVC4, это похоже на довольно распространенный случай использования. Как я могу проверить модель представления, которая является массивом или содержит массив?
===================== EDIT добавление кода для ViewModels для ясности ================= ====
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)
пожалуйста, поделитесь своей декларацией для выбранных параметров, а также аннотация –
Так что, может быть, я не понял. Вы не аннотировали массив? –
OIC, да, член ** (имя) массива Требуется модель! ** –