проблема при преобразовании даты в формате: dd.MM.yyyy в MM / dd / yyyy в mvc - PullRequest
0 голосов
/ 20 апреля 2011

Ниже приведен пример

Модель

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

Контроллер

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            Validity = DateTime.Now
        });
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

Просмотр

@model MyViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Validity)
    <input type="submit" value="OK" />
}

Когда я выбираю дату, например 12.12.2011 работает нормально, но когда я использую дату, например 18.12.2011, он устанавливает значение в свойстве (datetime) на 01/01/0001.Это проблема для меня.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2012

Вы можете добавить <globalization uiCulture="en-GB" culture="en-GB" /> в файл web.config.

0 голосов
/ 20 апреля 2011

Вы ожидаете даты в формате "Великобритания" (день / месяц / год), но код преобразования использует формат "США" (месяц / день / год).

Код, который преобразуется изДля строки DateTime необходимо использовать правильную строку формата.

Вам необходим метод DateTime.Parse , который принимает информацию о культуре и форматировании.Вы можете дать этому методу список возможных форматов, чтобы справиться с различными входными данными.

...