Si potrebbe definire il proprio metodo di estensione, qualcosa di simile:
public static MvcHtmlString DecimalBoxFor<TEntity>(
this HtmlHelper helper,
TEntity model,
Expression<Func<TEntity, Decimal?>> property,
string formatString)
{
decimal? dec = property.Compile().Invoke(model);
// Here you can format value as you wish
var value = !string.IsNullOrEmpty(formatString) ?
dec.Value.ToString(formatString)
: dec.Value.ToString();
var name = ExpressionParseHelper.GetPropertyPath(property);
return helper.TextBox(name, value);
}
E poi l'utilizzo potrebbe essere:
<%Html.DecimalBoxFor(Model,m => m.Cost,"0.00")%>
Grazie. Questo sembra più lavoro di quanto speravo, quindi non andrò con questo in questo momento. Lo terrò per riferimenti futuri. Su una nota correlata, è questo che devi fare quando i tuoi tipi non sono stringhe semplici, specialmente se sono numerici? Penseresti che ci debba essere una soluzione più semplice, no? – VoodooChild
:) grazie per l'incoraggiamento !!! – VoodooChild
quando possiamo semplicemente 'decimal.ToString (" N2 ")' per formattare un decimale in due posizioni 12 righe un codice * è un po 'più * in confronto. Il fatto è che gli helper/estensioni HTML incorporati dovrebbero avere un sovraccarico per la formattazione dei risultati. –