2012-01-09 87 views
0

我是ASP.NET MVC的新手,我發現顯示類似SSN的東西有點多。ID的MVC3編輯器模板像SSN

我需要顯示各種類型的唯一ID,但UI需要將它們的部分分成不同的文本框。例如,一個社會安全號碼包含文本框中的前三位數字,其他文本框中的後兩位數字等等。我使用了jQuery auto-tab插件來幫助用戶快速輸入數據。

關於掛鉤這份長達MVC3,好像我應該使用編輯器模板這樣,使用[UIHint(「SSN」)與@ Html.EditorFor一起:

@model string 
@Html.TextBox("", Model != null ? Model.Substring(0, 2) : "") 
@Html.TextBox("", Model != null ? Model.Substring(2, 5) : "") 
@Html.TextBox("", Model != null ? Model.Substring(5, 3) : "") 

是這是最好的方式去做這件事?

回答

0

這是最好的方法來解決這個問題嗎?

使用自定義編輯模板到SSN分成3個文本框,絕對是好的,但恐怕這只是第一部分(這是目前認爲內部視圖模型的方式)。

但我想,既然你是在文本框中呈現這些值,你會期望用戶輸入一些值到這些文本框。而當用戶提交表單時,您可能想要將這些值提取回視圖模型的SSN屬性。這將是第二部分。您可能需要自定義模型聯編程序來處理此問題。 Hansleman blogged with an example

+0

這意味着我需要一個SSN模型類嗎?所以,爲了確保正確理解這一點,爲了在三個輸入文本框中捕獲一個SSN而不是一個,我必須創建一個帶有三個字符串字段的SSN類,創建一個SSN模型綁定器,創建一個自定義屬性,以便我可以修飾具有SSN作爲屬性的類,並創建自定義編輯器和顯示模板...?對於如此簡單的定製需要完成多少工作,我感到很驚訝。 – tnktnk 2012-01-09 23:20:04

+0

@tnktnk,不,你有一個包含單個SSN屬性的視圖模型,該屬性用'[UIHint]'屬性裝飾,以表明該屬性應該使用您定義的自定義編輯器模板呈現,並且包含您在你的問題。你也可以定義一個SSN屬性來裝飾你的SSN屬性。請參閱我在第二部分的回答中鏈接到的Hansleman的博文。 – 2012-01-09 23:21:20

+0

我需要製作一個SSN模型,因爲您使用模型聯編程序來告訴控制器如何將模型綁定到視圖,對吧? – tnktnk 2012-01-10 01:04:36