2

我正在尝试创建一个自定义 HtmlHelper,它显示格式化为给定小数位数的数值。我的想法是更改 ModelMetadata.DataFormatString 属性来实现这一点。是否可以以这种方式修改模型属性的元数据属性?我该怎么做?我的尝试(如下)没有按要求格式化数字。

    public static MvcHtmlString FormattedNumberDisplayFor<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, decimal?>> expression, byte decimalPlaces)
    {
        ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
        string format = string.Format("{{0:f{0}}}", decimalPlaces);
        metadata.DisplayFormatString = format;
        return html.DisplayFor(expression);
    }

我当然可以在同一个 HtmlHelper 中以不同的方式获取格式化值,但我特别想知道是否可以在运行时动态调整模型元数据。

4

0 回答 0