Как заставить Html.TextBoxFor DateTime принимать пользовательский ввод dd.MM.yy - PullRequest
1 голос
/ 12 января 2012

Я пытаюсь создать страницу, где пользователь может искать статьи.Существует возможность ограничить поиск на основе FromDate и ToDate.И то, и другое DateTime.

. Пользователю предлагается ввести дату в форму dd.MM.yy, поскольку это нормально для нашей страны.Я могу увидеть дату в URL после отправки формы, и она выглядит так, как я хочу.Проблема, однако, заключается в том, что MVC3 предполагает, что формат MM.dd.yy.Как я могу это изменить?

Какой-то код: Это код Razor, который я использую

<div class="toDate" >
  <label>til dato</label>
  @Html.TextBoxFor(m => m.DateTo, new { placeholder = "dd.mm.yy" })
</div>

А в модели все, что у меня есть:

public DateTime DateTo { set; get; }

IЯ пытался использовать EditorFor, но я теряю свой заполнитель.

Вкратце: как заставить мою модель MVC3 принимать ввод DateTime от пользователя в форме dd.MM.yy

Если мой вопрос недостаточно ясен, дайте мне знать, и я постараюсь уточнить.

РЕДАКТИРОВАТЬ: Кажется, мне нужны некоторые разъяснения, поэтому я постараюсь сделать это с помощьюсоздание сценария:

  1. Пользователь вводит свои критерии поиска.Он устанавливает DateFrom и DateTo в двух текстовых полях.
  2. Форма отправляется и отправляется обратно на сервер.
  3. На сервере объект DateTime обрабатывается в форме MM.dd.уу.Я хочу, чтобы это было истолковано как dd.MM.yy.

Надеюсь, это поможет.

Ответы [ 2 ]

2 голосов
/ 12 января 2012
[DisplayFormat(DataFormatString = "{0:dd MM yy}")]
pubilc DateTime DateTo { get; set }
1 голос
/ 12 января 2012

Попробуйте настроить пользовательский атрибут проверки, где вы проверяете формат даты в соответствии с вашими предпочтениями.

Вот хороший урок для него: http://msdn.microsoft.com/en-us/gg618485 (Это не так сложно, как может показаться вво-первых, и может быть действительно полезным).

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

RegularExpression(@"[0-3][0-9]\.[0-1][0-9].[0-9][0-9]")]

Вышеупомянутое регулярное выражение не является идеальным, но служит примером.

Редактировать: Если решение 3nigma работает для вас, что, очевидно, гораздо предпочтительнее моего.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...