ho uno strano problema riguardante l'editor per l'helper di MVC3. Ecco la cosa: sto cercando di visualizzare una checkboxList e funziona se non chiamassi esplicitamente il nome del template. Tuttavia, se provo a utilizzare il nome del modello, esso genera un'eccezione dicendo che sto cercando di passare una lista generica quando dovrei semplicemente passare il mio viewModel. Vi mostrerò il codice per renderlo più comprensibile:asp.net-mvc3 Editor Per il problema del nome modello
ViewModel
public class ChkViewModel
{
public string ContractName {get;set;}
public string Contract {get;set;}
public bool Checked {get;set;}
}
Il Template EditorFor (si chiama 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>
Estratto dal mio punto di vista
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList)
</div>
Funziona bene. Ma provate a fare questo:
<div id="contractContainer">
@Html.EditorFor(item=>item.ContractList, "ContractTemplate")
</div>
Si getta il InvalidOperationException
dicendo che devo passare una semplice ChkViewModel e non un GenericList ChkViewModel.
Sto solo chiedendo questo perché ho provato a creare un altro checkbox e non sono riuscito a farlo funzionare (nemmeno visualizzare le caselle di controllo) e quando ho provato a impostare il nome del modello, in modo che potessi almeno vedere le caselle di controllo, ha generato quell'errore.
perché si desidera specificare il nome del modello? – epzee
Come ho detto nell'ultimo paragrafo, non ne avevo bisogno prima ma quando ho provato a creare un altro esempio, non ha funzionato. Inoltre, se è un parametro, perché non dovrebbe usarlo? Non sarebbe meglio sapere quale template sto usando, in particolare? – AdrianoRR