DateTimeフィールドのエディターテンプレートを作成しようとしていますが、DisplayFormat属性を尊重していないようです。
私のモデル:
public class Project
{
[Display(Name="Project Name")]
[Required]
public string ProjectName { get; set; }
[Display(Name="Start Date")]
[DisplayFormat(DataFormatString="{0:M/d/yyyy}", ApplyFormatInEditMode=true)]
public DateTime? StartDate { get; set; }
}
/Views/Projects/EditorTemplates/DateTime.cshtmlフォルダー内のマイエディターテンプレート
@model DateTime?
@Html.TextBoxFor(m => Model, new { @class="datepicker" })
これがすべてを結び付けるビューです。
@model Project
<fieldset>
<legend>Project</legend>
<div class="editor-label">
@Html.LabelFor(m => m.ProjectName)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.ProjectName)
@Html.ValidationMessageFor(m => m.ProjectName)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.StartDate)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.StartDate)
@Html.ValidationMessageFor(m => m.StartDate)
</div>
</fieldset>
このようにすると、日付の時間部分が表示されます。エディターテンプレートを削除すると、正常に機能し、日付部分のみが表示されます。エディターテンプレートがあるのに、なぜDisplayFormatを無視しているように見えるのですか?