2012-01-09 8 views
0

私はASP.NET MVCを初めて使い、SSNのようなものを少し表示するためのオプションを探しています。IDのようなIDのためのMVC3エディタテンプレート

私はさまざまな種類の一意のIDを表示する必要がありますが、UIの部分は別のテキストボックスに分割する必要があります。たとえば、テキストボックスの最初の3桁の数字、別のテキストボックスの次の2桁の数字などの社会保障番号などです。ユーザーがデータをすばやく入力できるようにjQuery自動タブプラグインを使用しました。私はこのようなエディタテンプレートを使用して、[UIHint(「SSNを」)]を使用する必要がありようMVC3にこれをフックに関しては

、それは@ 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プロパティに戻すことをお勧めします。これは第2の部分になります。これを処理するには、カスタムモデルバインダーが必要な場合があります。 Hansleman blogged with an example

+0

これは、SSNモデルクラスが必要なことを意味していますか?だから私はこれを正しく理解していることを確認します.3つの入力テキストボックスでSSNを取得するには、3つの文字列フィールドを持つSSNクラスを作成し、SSNモデルバインダーを作成し、カスタム属性を作成する必要があります。プロパティとしてSSNを持つクラスを飾ることができ、カスタムのエディタとディスプレイテンプレートを作成できます...?このようなシンプルなカスタマイズのためにどれくらいのことをしなければならないのか驚いています。 – tnktnk

+0

@tnktnk、いいえ、 '[UIHint]'属性で飾られた単一のSSNプロパティを含むビューモデルがあります。これは、あなたが定義したカスタムエディタテンプレートでレンダリングされ、あなたの質問。 SSN属性を定義して、SSNプロパティを装飾することもできます。 Hanslemanのこのブログ記事を参照してください。 –

+0

モデルバインダーを使用してモデルにビューをバインドする方法をコントローラーに指示するので、SSNモデルを作成する必要がありますか? – tnktnk

関連する問題