У меня есть вид редактирования объекта.В этом представлении несколько DateTime?свойства, которые используют:
model.MyDateTime)%>
У меня есть шаблон редактора с именем DateTime, который строго типизирован для DateTime?тип.Представление объявляется следующим образом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>
<% if( Model.HasValue ) { %>
<%= Html.TextBoxFor( x => Model, Model.Value.ToShortDateString() ) %>
<% } else { %>
<%= Html.TextBoxFor(x => Model) %>
<% } %>
Часть времени всегда отображается независимо от того, что я делаю.Я знаю, что шаблон отображения отображается.Я добавил статический текст для вывода if, а также для вывода else, и первый всегда показывает.Невероятно странная вещь, которую я могу сделать:
<%= Html.Encode(Model.Value.ToShortDateString()) %>
И часть времени не отображается.Я довольно озадачен.Ниже приведены действия GET & POST, которые я использую:
public ActionResult EditAssociate(int? Oid)
{
if (!Oid.HasValue)
return RedirectToAction("SelectReviewYearAndAssociate");
MpaNonExemptData mpaNonExemptRecord = repository.getNonExemptDataByOid(Oid.Value);
return View(mpaNonExemptRecord);
}
[HttpPost]
public ActionResult EditAssociate(MpaNonExemptData associate)
{
repository.updateNonExemptDataByOid(associate);
return View(associate);
}
Как видите, это действительно просто.Есть мысли?
Я посмотрел следующие вопросы, но не нашел ответа:
Объект TextBoxFor Date всегда показывает элемент времени
TextBoxFor Helper сохраняет предыдущее значение, даже если значение модели пусто