3

これは、現在の文化に基づいて日付をフォーマットする私のモデルです。

DataFormatString = "{0:MM/dd/yyyy}"のようなハードコーディングは避けようとしました 以下を行う理由は、現在のカルチャ パターンを取得するためです

 [Required(ErrorMessage = "Date is required")]
 [DisplayFormat(ApplyFormatInEditMode = true,
               DataFormatString = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]
[Display(Name = "Date", ResourceType = typeof(Resources.Global))]
public DateTime Date { get; set; }

および .cshtml で

@Html.TextBox("Date", 
    Model.Date.ToString("d", System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat), new { @class = "datePicker" })

問題: エラーが発生します

属性引数は、定数式、typeof 式、または属性パラメーター タイプの配列作成式でなければなりません

MVC TextBox Helper で現在のカルチャ ベースの短い日付を表示する方法はありますか?

4

1 に答える 1

-1

{0:d}は現在の文化ShortDatePatternであり、

それ以外の

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString())]

使用する必要があります

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = {0:d})]

これを設定すると、DataFormatString は EditorFor と DisplayFor でのみ使用されます。したがって、ビューを次のように変更する必要があります

@Html.EditorFor(model => model.Date, new { @class = "datepicker" })

@model YourModelビューの上部に追加することを忘れないでください

于 2013-01-02T00:46:22.160 に答える