I've tweaked Jamiec's answer above a little to (a) make it compile and (b) use the same underlying methods as the framework does:
public static MvcHtmlString DecimalBoxFor<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, decimal?>> expression, string format, object htmlAttributes = null)
{
var name = ExpressionHelper.GetExpressionText(expression);
decimal? dec = expression.Compile().Invoke(html.ViewData.Model);
// Here you can format value as you wish
var value = dec.HasValue ? (!string.IsNullOrEmpty(format) ? dec.Value.ToString(format) : dec.Value.ToString())
: "";
return html.TextBox(name, value, htmlAttributes);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…