簡體   English   中英

存儲為Varchar的SSN的剃刀頁面顯示模板(9)

[英]Razor Page Display Template for SSN stored as a Varchar(9)

我試圖用短划線顯示存儲為Varchar(9)的SSN。

數據庫中的SSN存儲為varchar(9),不帶破折號。 它不存儲為數字,因為如果將其存儲為數字,則會刪除任何前導零。 我不能將DisplayFormat屬性與DataFormatString =“ {0:###-##-#####}”一起使用,因為這似乎僅在將SSN存儲為Long類型時才起作用。 因此,我正在嘗試為其創建顯示模板。 我已經創建了一個名為SSN的.cshtml文件,並將其放置在Shared文件夾內的一個名為DisplayTemplates的文件夾中,並且我在Razor頁面上使用@ Html.DisplayFor(modelItem => item.SSN)來顯示SSN,但使用了蒙版我在顯示模板中創建的設置無效。

這是SSN.cshtml顯示模板中的代碼:

@model PFDTrustDomain.Client

<div>
    @Model.SSN.Insert(2, "-").Insert(5, "-");
</div>

我希望SSN顯示為:123-45-6789,但仍會繼續顯示為:123456789。

如果未點擊顯示模板,則需要通過將Copy to Output Directory設置為Copy to Output Directory ,將模板復制到輸出文件夾。

請按照以下步驟操作:

  1. @Html.DisplayFor@model PFDTrustDomain.Client不匹配,模板為Client,但是您使用SSN傳遞了字符串。 @Html.DisplayFor一樣更改@Html.DisplayFor @Html.DisplayFor(model => model.SSN,"SSN")
  2. 將模板中的@model PFDTrustDomain.Client更改為以下

     @model string <div> @Model.Insert(3, "-").Insert(6, "-"); </div> 
  3. Shared/DisplayTemplates/SSN.cshtml Copy to Output Directory設置為Copy always

我已經找到了問題(在導師的賢哲幫助下)。 除了按照madreflection的建議將字符位置更改為3和6外,還需要將字符串“顯示模板的名稱”添加到.cshtml文件中的DisplayFor方法中,如下所示:

    <td>
        @Html.DisplayFor(modelItem => item.SSN, "SSN")
    </td>

暫無
暫無

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

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