2011-10-21 4 views
0

html.textboxは、特定の形式でフォーマットする必要があるため、html.textboxを使用していますが、html.textboxを使用する方法はわかりません。 。 はしかし、私は私が仕事に私のモデルクラスに検証のためのtextboxforを持っている必要があり実現:MVC 3 - Html.TextBoxをHtml.TextBoxForに変更する

[Required(ErrorMessage = "Storage Date is required")] 
    [DataType(DataType.DateTime, ErrorMessage = "Please input a valid date")] 
    public DateTime StorageDate { get; set; } 

任意のアイデアどのように私は同じ設定でHtml.TextBoxForに以下の私のHtml.Textboxを変更できますか?

@Html.TextBox("expirydate", String.Format("{0:ddd, d MMM yyyy}", DateTime.Now), new { id = "expirydate" }) 
    @Html.ValidationMessageFor(model => model.ExpiryDate) 

任意の助けに感謝...おかげで...

答えて

1

あなたが本当にが動作するために、検証のためにTextBoxFor()を使用するは必要ありません。 TextBoxがモデル内のフィールドと同じIDを持つ場合、モデルバインダーはそれを取り込みます。控えめな検証機能を得るために話しているのであれば、いつでもTextBoxにdata- *属性を手動で追加することができます。

しかし、この場合、実際にはEditorFor()を使用してカスタムエディタが必要です。これはもう少し作業ですが、実際に日付/時刻の書式設定を実施するには、日付/時刻のピッカーコントロールのようなものをユーザーに与えます。基本的な考え方は次のとおりです。

  • タイプNullable<DateTime>のモデルにバインドされているDateTime.cshtmlと呼ばれる部分図を作成し、Shared/EditorTemplatesビューのフォルダにそれを置きます。
  • jQueryとjQueryUIを使用して、日付/時刻ピッカーとしてスタイリングされたHTMLテキストボックスを部分ビューに配置します。
  • [DataType(DataType.DateTime)]属性
  • 使用Html.EditorFor(model => model.WhateverProperty)幸い

であなたのモデルに財産を飾る、日付/時刻ピッカーは、おそらく最も人気のあるカスタムMVC3エディタなので、から選択する例がたくさんあります。 this questionからのコードは、ちょうど答えで提案に注意し、部分図で、この行を交換することを確認し、正常に動作します:

@model System.DateTime? 
+0

HI、おかげでたくさんの実際I:これで

@inherits System.Web.Mvc.WebViewPage<System.DateTime> 

以前はeditorforを使用していました。しかし、日時フィールドの日付ピッカーごとに異なる設定をする必要があるので、別のIDで日付を区切ります。 Btw、私は本当に動作するためには、テキストボックスを必要としないことに気づいた! – shennyL

関連する問題