Подтвердить что ты не робот

Проблема с форматированием текстового поля MVC DateTime

Я хотел бы сделать что-то вроде

model.PickupDate.ToString("d")

Но MVC4 не очень нравится. PickupDate - это поле DateTime, и я хотел бы отключить временную часть при отображении в представлении, сохраняя код new { id = "date1" }, который связывает TextBoxFor с javaript datepicker. Как я могу показать часть Date только в этом случае?

@Html.TextBoxFor(model => model.PickupDate, new { id = "date1" })
4b9b3361

Ответ 1

вот как я это сделаю. Надеюсь, что это поможет.

 @Html.TextBoxFor(m => m.MyDateTime, new { Value = Model.MyDateTime.ToString("MM-dd-yyyy"), id = "MySuperCoolId"});

или в вашем случае

@Html.TextBoxFor(m => m.PickupDated, new { Value = Model.PickupDate.ToString("d"), id = "date1"});

Ответ 2

Это должно работать:

@Html.TextBoxFor(model => model.SomeDateTime, "{0:MM/dd/yyyy}", new { id = "yourID" })

Ответ 3

Когда вы определяете свою модель, вы можете указать форматирование даты, в этом примере у меня есть DD/MM/YYYY в качестве моего формата, но вы можете делать любой формат, который вам нужен.

Код модели

public class MyModel
{
   [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
   public DateTime SomeDateTime {get;set;}
}

Затем ваша бритва

@Html.EditorFor(model => model.SomeDateTime, new { id = "date1" })

Ответ 4

На основе fooobar.com/questions/27708/..., протестированного с помощью датпикера JQueryUI.

@Html.TextBoxFor(model => model.PickupDate, "{0:d}", new { id = "date1" })

Ответ 5

Если вы делаете преобразование только в Вид, вы можете записать это, следуя

@Html.TextBoxFor(model => model.SomeDateTime, String.Format("{0:MM/dd/yyyy}"))

Ответ 6

Дисплей будет зависеть от культуры. И хотя в большинстве случаев все остальные ответы верны, это не сработало для меня. Проблема с культурой также вызовет различные проблемы с jQuery datepicker, если они будут включены.

Если вы хотите принудительно форматировать escape / следующим образом:

@Html.TextBoxFor(model => model.PickupDate, "{0:MM\\/dd\\/yyyy}", new { id = "date1" })

Если мне не удалось убедится, он показывает 08-01-2010 против ожидаемого 08/01/2010.

Также, если не экранированный jQuery datepicker будет выбирать другой defaultDate, в моем экземпляре это было May 10, 2012.

Ответ 7

   @Html.TextBoxFor(model => model.Date, String.Format("{0:dddd, MMMM d, yyyy}",Model.Date),  new { @class = "form-control"})