Mam dziwny problem dotyczący edytora. Pomocnik z MVC3. Oto rzeczy: próbuję wyświetlić checkboxList i działa, jeśli nie wywołuję explicity nazwę szablonu. Jednak jeśli spróbuję użyć nazwy szablonu, zgłasza wyjątek mówiąc, że próbuję przekazać ogólną listę, kiedy powinienem po prostu przekazać mój viewModel. Pokażę jakiś kod, aby uczynić go bardziej zrozumiałe:asp.net-mvc3 EditorFor nazwa szablonu numer
ViewModel
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
EditorFor szablonu (to się nazywa 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>
Wyciąg z moim zdaniem
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
To działa dobrze. Ale spróbuj to zrobić:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
To rzuca InvalidOperationException
mówiąc, że muszę zdać prosty ChkViewModel a nie GenericList ChkViewModel.
Pytam tylko o to, ponieważ próbowałem utworzyć kolejną listę wyboru i nie mogłem jej uruchomić (nawet nie wyświetlałem pól wyboru) i kiedy próbowałem ustawić nazwę szablonu, tak abym mógł przynajmniej zobacz pola wyboru, wyrzucił ten błąd.
dlaczego chcesz podać nazwę szablonu? – epzee
Jak wspomniałem w poprzednim paragrafie, nie potrzebowałem go wcześniej, ale kiedy próbowałem stworzyć inny przykład, to po prostu nie zadziałało. Poza tym, jeśli jest to parametr, dlaczego nie powinien go używać? Czy nie byłoby lepiej wiedzieć, którego szablonu używam, w szczególności? – AdrianoRR