2010-12-20 14 views
0

私のアプリケーションでは、すべての日付をMM/DD/YYYY形式で表示する必要があります。また、テキストボックスを10文字に制限し、特定のクラスを適用したいとします。MVC3のテキストボックスに日付書式を適用し、属性を追加するにはどうすればよいですか?

そのために、私はこのようになります日付のカスタムエディタのテンプレートを作った:

@ModelType System.Nullable(Of DateTime) 

@Html.TextBoxFor(Function(d) d, New With {.class="polkDate", .maxlength="10"}) 

は、次に私の見解で私はちょうど@Html.EditorFor(Function(m) m.someDate)を呼び出すことができ、これはかなりうまく動作します。ただし、私はTextBoxForを使用しているため、モデルクラスに適用されているDisplayFormat属性を尊重しません(つまり、日付を書式設定する代わりに時刻を吐き出す)。

私はEditorForを使用して、好きな書式設定を尊重したいと思いますが、classとmaxlengthのような属性を追加することはできません。私はまた、普通の古いTextBoxヘルパーを使用してみましたが、モデルバインディングが動作するように正しいIDを生成する方法はわかりません。

これを行う方法を知っている人はいませんか?私はここでやりたいことがあまりにも珍しいと感じない。

答えて

1

これはトリックを行うために表示されます。すべてが正常に動作するように、フレームワークが自動的にHTMLのinputタグのIDと名前のフィールドを割り当てますよう

@ModelType Date 

@If Date.MinValue.Equals(Model) Then 
    @Html.TextBox("", Nothing, New With {.class="polkDate", .maxlength="10"}) 
Else 
    @Html.TextBox("", Model.ToShortDateString(), New With {.class="polkDate", .maxlength="10"}) 
End If 

が見えます。

関連する問題