Sto usando ASP.NET MVC3 con Razor e C#. Sto facendo un costruttore forma di sorta, quindi ho un modello che ha una collezione di seguente oggetto:Come posso far funzionare Html.CheckBoxFor() su un campo stringa?
public class MyFormField
{
public string Name { get; set; }
public string Value { get; set; }
public MyFormType Type { get; set; }
}
MyFormType è solo un enum che mi dice se il campo di modulo è una casella di controllo, o di testo, o caricamento di file o altro. Il mio editor di modelli simile a questa (si veda il commento):
~/Vista/EditorTemplates/MyFormField.cshtml
@model MyFormField
@{
switch (Model.Type)
{
case MyFormType.Textbox:
@Html.TextBoxFor(m => m.Value)
case MyFormType.Checkbox:
@Html.CheckBoxFor(m => m.Value) // This does not work!
}
}
ho provato fusione/convertire il m.Value
ad un bool nell'espressione lambda per CheckBoxFor(), ma che ha generato un errore. Vorrei solo costruire manualmente un ingresso casella di controllo, ma CheckBoxFor() sembra fare due cose che io non riesco a replicare:
- crea un input nascosto che in qualche modo viene popolato dalla casella di controllo. Questo sembra essere ciò che raccoglie il raccoglitore modello.
- Genera il nome modulo dell'oggetto in modo che il raccoglitore modello ottenga il valore nella proprietà corretta.
Qualcuno sa un modo per aggirare utilizzando CheckBoxFor() su una stringa, o un modo per replicare la funzionalità manualmente, in modo che io possa fare questo lavoro?
Grazie!Questo ha risolto il mio problema che stavo avendo! – AustinT