asp.net-mvc3 EditorFor проблема имени шаблона

у меня возникнет странная проблема с помощником 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" })
&nbsp;       
</p>  

Выдержка из моего представления

<div id="contractContainer">
  @Html.EditorFor(item=>item.ContractList)
</div>

Это отлично работает. Но он пытается сделать это:

<div id="contractContainer">
  @Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>

Выдает исключение InvalidOperationException , в котором говорится, что мне нужно передать простой ChkViewModel, а не GenericList ChkViewModel.

Я спрашиваю об этом только потому, что я пытался создать другой список флажков, и у меня не получалось заставить его работать (даже не отображать флажки), и когда я пытался установить имя шаблона, чтобы я мог хотя бы видеть флажки, это вызвало эту ошибку.

7
задан AdrianoRR 22 November 2011 в 14:13
поделиться