修改HtmlHelper中的模型属性元数据

时间:2012-11-30 09:32:40

标签: asp.net-mvc entity-framework data-annotations modelmetadata

我正在尝试创建一个自定义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中以不同的方式获取格式化的值,但我特别想知道是否可以在运行时动态调整模型元数据。

0 个答案:

没有答案