Grazie per i posti di cui sopra, che mi ha aiutato a creare una forte digitare il sistema di binding per MVC 4 HTMLHelpers come segue.
public static MvcHtmlString StrongTypeBinder(this HtmlHelper htmlhelper, Expression<Func<object, string>> SomeLambda)
{
var body = SomeLambda.Body;
var propertyName = ((PropertyInfo)((MemberExpression)body).Member).Name;
HtmlString = @"
<input type='text' name='@Id' id='@Id'/>
";
HtmlString = HtmlString.Replace("@Id", propertyName);
var finalstring = new MvcHtmlString(HtmlString);
return finalstring;
}
Per utilizzare il codice di cui sopra, in ogni CSHTML Vista:
@Html.StrongTypeBinder(p=>Model.SelectedDate)
Questo mi permette di associare qualsiasi proprietà in una ViewModel a qualsiasi tipo di elemento HTML che voglio. Nell'esempio sopra riportato, lego il campo del nome per i dati selezionati postati dopo che l'utente ha effettuato la selezione. Il viewmodel dopo il postback mostra automaticamente il valore selezionato.
fonte
2014-12-01 20:13:50
Correzione: dovrebbe essere System.Reflection.MethodBase.GetCurrentMethod() Nome – aads