ASP.NET MVC - TextBoxFor でフォーマット指定

すっごい今頃気づいたんですが、ASP.NET MVC 4 から TextBoxFor メソッドでフォーマット(書式)を指定できるんですね。知らなかった・・・。

TextBoxFor メソッドのオーバーロードは6つあって、そのうちの下3つは引数に format があります。

InputExtensions.TextBoxFor メソッド (System.Web.Mvc.Html)

例えばこれとか。

InputExtensions.TextBoxFor(TModel, TProperty) メソッド (HtmlHelper(TModel), Expression(Func(TModel, TProperty)), String) (System.Web.Mvc.Html)

実際に使ってみるとこんな感じです。(コントローラは端折ってます。)

モデル

public class Sample {
    public DateTime Date1 { get; set; }
    public DateTime Date2 { get; set; }
}

ビュー

<div>
    @Html.LabelFor(model => model.Date1, "書式指定なし")
    @Html.TextBoxFor(model => model.Date1)
</div>
<div>
    @Html.LabelFor(model => model.Date2, "書式指定あり")
    @Html.TextBoxFor(model => model.Date2, "{0:d}")
</div>

結果

f:id:ichiroku11:20130804001010p:plain

素敵。