у меня возникнет странная проблема с помощником editorFor из MVC3. Вот в чем дело: я пытаюсь отобразить список флажков, и он работает, если я не вызываю явное имя шаблона. Однако, если я пытаюсь использовать имя шаблона, возникает исключение, в котором говорится, что я пытаюсь передать общий список, когда я должен просто передать свою модель представления. Я покажу код, чтобы сделать его более понятным:
ViewModel
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
Шаблон EditorFor (он называется ContractTemplate)
@model Models.ChkViewModel
<p>
@Html.HiddenFor(x => x.Contract )
@Html.LabelFor(x => x.ContractName , Model.ContractName )
@Html.CheckBoxFor(x => x.Checked, new { @class = "chkContract" })
</p>
Выдержка из моего представления
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
Это отлично работает. Но он пытается сделать это:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
Выдает исключение InvalidOperationException
, в котором говорится, что мне нужно передать простой ChkViewModel, а не GenericList ChkViewModel.
Я спрашиваю об этом только потому, что я пытался создать другой список флажков, и у меня не получалось заставить его работать (даже не отображать флажки), и когда я пытался установить имя шаблона, чтобы я мог хотя бы видеть флажки, это вызвало эту ошибку.