Передать объект Date из javascript в контроллер asp.net mvc - PullRequest
1 голос
/ 28 мая 2010

У меня есть переменная Date на стороне клиента, и я хочу передать переменную Date моему контроллеру на стороне сервера. Я прошел как обычное поле, и по умолчанию дата 01-01-0001 12:00:00.

помогите мне преобразовать поле даты в правильном формате.

Ответы [ 2 ]

1 голос
/ 28 мая 2010

ASP.NET MVC ожидает, что значение DateTime будет в формате Thread.CurrentLanguage. Пожалуйста, проверьте, какой язык вы используете.

Это так, потому что пользователи могут вводить дату в TextBox и вводить формат своего языка.

Как сказал Питер: в этом случае проще всего использовать строку.

Другой способ - использовать

protected void Application_BeginRequest(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
}

в Global.Asax.

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

    public override void OnActionExecuting(ActionExecutingContext filterContext)
     {
             string language = //find a way to get the language - I have it in the route
             Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(language);
             Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
         base.OnActionExecuting(filterContext)
     }

Этот способ сопряжен с некоторыми рисками, но мне проще во многих ситуациях, если modelBinding использует InvariantCulture (представьте десятичные значения в маршруте, дату и время в маршруте ...)

0 голосов
/ 28 мая 2010

Я думаю, что было бы проще всего передать строковое представление даты в действие ASP.NET MVC и попытаться проанализировать ее, используя DateTime.TryParse (..) .

[HttpPost]
public ActionResult(string dateTimeString)
{
    DateTime tempDateTime;
    if(DateTime.TryParse(dateTimeString, out tempDateTime))
    {
       //Handle
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...