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