2016-09-08 4 views
0

у меня есть эти коды, но затем дисплей значение в поле редактирования «мм/дд/гггг» enter image description hereКак изменить значение даты с форматом даты типа в загрузчике

@Html.TextBoxFor(m => m.StartDate, new { @Value = Model.StartDate.ToString("MM/dd/yyyy"), @placeholder= Model.StartDate.ToString("MM/dd/yyyy"), @class = "form-control", @type="date" }) 

Как я могу добиться что-то вроде это где отображается дата значение из базы данных, а не «мм/дд/гггг»

enter image description here

ответ

0

Во-первых, не установлен атрибут value непосредственно. Бритва будет в значительной степени игнорировать это в любом случае. Значение для связанного поля исходит от ModelState, которое само по себе составлено из значений Request, ViewBag/ViewData и Model в этом порядке. Так, например, если вы хотите StartDate по умолчанию «сегодня», то вы бы просто заполнить вашу модель с этим в действии, прежде чем вернуть вид:

model.StartDate = DateTime.Today; 

Или, лучше, вы можете изменить свойство на вашей модели класса по умолчанию сегодня автоматически:

private DateTime? startDate; 
public DateTime StartDate 
{ 
    get { return startDate ?? DateTime.Today; } 
    set { startDate = value; } 
} 

Просто имейте в виду, что если ваше действие происходит взять из параметров, как startDate или установить что-то вроде ViewBag.StartDate, эти значения будут всегда иметь приоритет.

Во-вторых, вы используете тип ввода HTML5 date. В браузерах, поддерживающих типы ввода HTML5, заданное значение для даты и времени, даты или времени, должно быть в формате ISO. Для даты это означает YYYY-MM-DD. Если значение не указано таким образом, браузер считает его мусором и отбрасывает его, оставив элемент управления, как будто значение не было предоставлено.

Кроме того, FWIW, вам не нужно приписывать каждому члену вашего анонимного объекта @. Это ничего технически не наносит, но это запах кода. Для исключения языковых ключевых слов существует префикс @. Например, с помощью class вы не можете использовать его напрямую, так как это ключевое слово, поэтому вместо этого вы должны использовать @class. Тем не менее, такие вещи, как placeholder и type, являются не ключевыми словами, поэтому не нужен префикс @.

+0

У StartDate всегда есть данные, которые являются типами даты. Как я могу добиться отображения значения даты, а не «мм/дд/гггг;»? – Jen143

 Смежные вопросы

  • Нет связанных вопросов^_^