2015-03-26 4 views
3

Я хочу знать, как я могу передать DATETIME значения через и данные формы его получение в контроллере и преобразовать его в DateTime в контроллереКак добавить значение даты и времени в FormData и получить его в контроллере

Я попытался, как ниже:

var formdata=new FormData(); 
fromDate = $('.from_date').datepicker('getUTCDate'); 
toDate = $('.to_date').datepicker('getUTCDate'); 

formdata.append("start", new Date(fromDate)); 
formdata.append("end", new Date(toDate)); 

и $.ajax Я устанавливаю data:formdata

в мой контроллер я получаю его, как показано ниже:

DateTime frmDate = Convert.ToDateTime(Request.Form["start"]).Date; 
DateTime toDate = Convert.ToDateTime(Request.Form["end"]).Date; 

Но здесь я получаю System.FormatException при попытке Convert к DateTime и когда я держу часы за Request.Form["start"] то значение будет "Fri Mar 30 2015 05:30:00 GMT+0530 (Indian Standard Time)", но рассматривает его как строку при получении из запроса.

Можно ли передавать данные типа datetime через Request?

ответ

5

Вы получаете FormatException, потому что строка даты не отформатирована в распознанном шаблоне для синтаксического анализатора .NET. Если мы можем быть более конкретными относительно формата в javascript, мы можем удовлетворить синтаксический анализатор .NET.

var datestr = (new Date(fromDate)).toUTCString(); 
formdata.append("start", datestr); 

Любой из них даст нам обслуживаемого формат

Теперь мы разбираем строку в вашем серверного кода

DateTime fromDate = Convert.ToDateTime(Request.Form["start"]).Date; 

В зависимости от настроек культуры вашей машины вам может потребоваться использовать DateTime.ParseExact() вместо Convert.ToDateTime().

Можно ли передавать тип данных в формате datetime через Request?

Вдоль конвейера от javascript к действию вашего контроллера это все равно будет преобразовано в строку или целое. Мы могли бы вернуть представление тика (milisecond) для DateTime, но тогда вам нужно будет преобразовать его в .NET ticks, который использует разные эпохи и наносекундные единицы.

Просто придерживайтесь строк со стандартными форматами.

Подробнее о разбор форматов даты here.

+0

приятный. Я буду реализовывать это завтра и дам вам знать. Аналогично любая идея о передаче модели контроллеру через formdata? –

+0

Упрощение для ваших усилий, и я чувствую, что это должно работать, но затем позвольте мне реализовать и сообщить вам. –

+0

Есть ли конкретная причина для использования formdata? В отличие от простых объектов или json. – Jasen