ASP.NET MVC 2: отключенный TextBox для DateTime возвращает ноль - PullRequest
3 голосов
/ 22 октября 2010

Я столкнулся с раздражающим поведением привязки для DateTime, привязанного к текстовому полю, которое отключено. Всегда возвращает ноль.

У моей модели есть DateTime? Свойство StartDate ... Я также пробовал только DateTime StartDate (без '?').

Я пробовал следующее:

Попытка № 1:

<%: Html.TextBoxFor(model => model.StartDate, new { @disabled="true" })%>

Попытка № 2:

<%: Html.EditorFor(model => model.StartDate, "DateDisabled")%>

где DateDisabled - это частичное представление, определенное следующим образом:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>
<%: Html.TextBox("", Model.HasValue ? Model.Value.ToShortDateString() : "", new { @class = "text-box-short-disabled", @disabled = "true" })%>

Все мои попытки возвращают нулевое значение. Я что-то пропустил? Или обходной путь?

1 Ответ

10 голосов
/ 22 октября 2010

Входные элементы с атрибутом disabled никогда не отправляют свое значение на сервер при отправке формы.Вместо этого вы должны использовать атрибут readonly:

<%: Html.TextBoxFor(model => model.StartDate, new { @readonly = "readonly" }) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...