私は2つの日付を持つモデルを持っています.Proposed "08/07/2013 08:00:00"とCurrentFocusDate "08/07/2013 00:00:00"として両方を渡しますが、ページのように何かがうまくいかないそれらは異なる方法でレンダリングされます (以下の出力を参照)。
モデル
public AdminNoteViewModel
{
[HiddenInput(DisplayValue = false)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime ProposedDateTime { get; set; }
[HiddenInput(DisplayValue = true)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime CurrentFocusDate { get; set; }
[HiddenInput(DisplayValue = true)]
public string NavigationLink { get; set; }
}
意見
@Html.EditorFor(model => model.ProposedDateTime)
@Html.ValidationMessageFor(model => model.ProposedDateTime)
@Html.EditorFor(model => model.CurrentFocusDate)
@Html.HiddenFor(model => model.NavigationLink)
コントローラ
public ActionResult AddNote(DateTime proposedEventDateTime, long productId, DateTime currentFocusDate, string navigationLink)
{
var model = new AdminNoteViewModel
{
ProductId = productId,
ProposedDateTime = proposedEventDateTime,
CurrentFocusDate = currentFocusDate,
NavigationLink = navigationLink
};
return View(model);
}
これはレンダリングされたソースです
<input data-val="true" data-val-date="The field ProposedDateTime must be a date." data-val-required="The ProposedDateTime field is required." id="ProposedDateTime" name="ProposedDateTime" type="hidden" value="07/08/2013 08:00:00" />
<span class="field-validation-valid" data-valmsg-for="ProposedDateTime" data-valmsg-replace="true"></span>
<input data-val="true" data-val-date="The field CurrentFocusDate must be a date." data-val-required="The CurrentFocusDate field is required." id="CurrentFocusDate" name="CurrentFocusDate" type="hidden" value="08/07/2013 00:00:00" />
<input id="NavigationLink" name="NavigationLink" type="hidden" value="Civica.DrugAdmin.UI.Models.AdminNoteViewModel" />
デバッグすると、ビューに表示されたモデルの両方の日付が正しくフォーマットされていますが、ページにレンダリングすると、そのうちの 1 つ (currentFocusDate) が切り替えられます。