2

私はルールの例外に対してのみ開発することを強く信じているので、回避する方法を検討しています。すべての数値を DisplayFormat 属性で装飾します。すべてのタグに属性を追加します。等

たとえば、テーブルを表示する場合、ルールによって小数点以下 2 桁までコンマで区切られたすべての小数点を右揃えにする必要があります。ルールが変更された場合は、html とモデルの両方を変更する必要があるようです。これを攻撃する方法のオプションは?ルール リポジトリを調べるコントローラでの HTML 生成は? DisplayFor 拡張メソッド + スタイルシート + スタイルシートをオーバーライドする何らかの方法?

@foreach ( var item in Model )
{ 
    <tr>
        <td>@Html.DisplayFor(mi => item.ItemName)</td>
        <td align="right">@Html.DisplayFor(mi => item.NewPrice)</td>
        <td>@Html.DisplayFor(mi => item.CurrentPrice, "Decimal")</td>
        <td align="right">@Html.DisplayFor(mi => item.MyPrice)</td>
        <td align="right">@Html.DisplayFor(mi => item.Markup)</td>
    </tr>
}
4

2 に答える 2

4

ここで使いたいのは DisplayTemplates だと思います。

次の部分ビューのようなものを Views\Shared\DisplayTemplates フォルダーに保存します (VB 構文では申し訳ありません)。

@ModelType Nullable(Of Decimal)
@Code
    Dim value As String

    value = If(ViewData.TemplateInfo.FormattedModelValue Is Nothing, "", ViewData.TemplateInfo.FormattedModelValue)
    value = String.Format("{0:C}", value)

End Code
<div class="displayCurrency">@Html.Encode(value)</div>

このコードは、DisplayFor をレンダリングするために使用されます。

于 2012-10-03T16:54:46.453 に答える