0

さて、私は一日中この単純なタスクの解決策を探していました.

BIC プロパティと NationalNumber プロパティを持つ mvc モデル クラスがあります。Bother は文字列値です。DisplayFor ヘルパーを使用して、ビューにプロパティをレンダリングしたいのですが、書式設定が適用されています。

完全を期すために: NationalNumber のフォーマットは '00.00.00-000.00' で、BIC のフォーマットは AAAA BB CC です

プロパティにDisplayFormat属性で注釈を付けてみましたが、DateTimes、数値などでしか機能しないようです..

[DisplayFormat(DataFormatString = "{0:##.##.##-###.##}")]

次に、カスタム DisplayFormat 属性の作成を検討しましたが、DateTimes、数値などに適用されるパターンでも機能します。カスタム属性のコンストラクターでDataFormatString値を指定する必要があります。しかし、フィルターは文字列では機能しないようです!

しばらくの間、マークアップ clientSide (マスク プラグインを使用) を実行することになりましたが、それは本当に私が望んでいるものではありません!

要約する@Html.DisplayFor(x=>x.BicNumber)と、BicNumber を文字列にして、できればビューモデルに注釈を付けて、カスタムの書式設定を使用してレンダリングしたいと考えています。

前もって感謝します

4

1 に答える 1

1

NationalNumberBICが別々のデータ型である場合、表示テンプレートを作成して と に保存する~/Views/Shared/DisplayTemplates/NationalNumber.cshtml~/Views/Shared/DisplayTemplates/BIC.cshtml、必要に応じて自動的に機能します。

string.cshtmlこれらのプロパティを文字列として保持する場合、作成された表示テンプレートがプロジェクト内のすべての文字列に影響するため、自動アプローチは機能しません。

~/Views/Shared/DisplayTemplates/NationalNumber.cshtmlそこで、数値の一部を手動で出力する、という名前の表示テンプレートを作成します。

@model string
@String.Format("{0}.{1}.{2}-{3}.{4}", Model.Substring(0, 2), Model.Substring(2, 2), Model.Substring(4, 2), Model.Substring(6, 3), Model.Substring(9, 2))

(大文字Stringの に注意してください。重要です)、明示的に指定します。

@Html.DisplayFor(x=>x.NationalNumber, "NationalNumber")
于 2014-10-07T16:36:09.600 に答える