簡體   English   中英

如何格式化要在DisplayFor中使用的MVC模型類中的字符串屬性

[英]How to format string property in MVC model class to be used in DisplayFor

好的,我整天都在尋找解決方案。

我有一個MVC模型類,它具有BIC屬性和NationalNumber屬性。 麻煩的是字符串值。 我想使用DisplayFor助手在視圖BUT上渲染屬性,並應用格式。

為了完整性:NationalNumber的格式為'00 .00.00-000.00',BIC的格式為AAAA BB CC

我嘗試使用DisplayFormat屬性注釋屬性,但似乎只能與DateTimes,數字值等一起使用。

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

然后,我研究了如何創建一個自定義DisplayFormat屬性 ,但它也適用於適用於DateTimes,數字值等的模式。您仍然需要在自定義屬性的構造函數中提供一個DataFormatString值。 但是過濾器似乎不適用於字符串!

目前,我最終做了標記clientSide(帶有遮罩插件),但這並不是我真正想要的!

總結一下:我想使用@Html.DisplayFor(x=>x.BicNumber)並以自定義格式對其進行呈現,最好在我的viewmodel上進行注釋,其中BicNumber是一個字符串。

提前致謝

如果您的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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM