Se podría definir su propio método de extensión, algo así como:
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);
}
Y a continuación, el uso sería:
<%Html.DecimalBoxFor(Model,m => m.Cost,"0.00")%>
Thanks. Esto parece más trabajo de lo que esperaba, así que no voy a ir con esto en este momento. Lo mantendré para futuras referencias. En una nota relacionada, ¿es esto lo que tienes que hacer cuando tus tipos no son cadenas simples, especialmente si son numéricas? Pensarías que tiene que haber una solución más simple, ¿no? – VoodooChild
:) gracias por el estímulo !!! – VoodooChild
cuando podemos simplemente 'decimal.ToString (" N2 ")' para formatear un decimal en dos lugares 12 líneas un código * es un poco mucho * en comparación. El hecho es que los helpers/extensiones de HTML incorporados deberían tener una sobrecarga para formatear los resultados. –