2015-12-10 3 views
0

Я пытаюсь сделать подборку с датами, но это исключает исключение .ASP.NET MVC 3 Razor DateTime.Parse не работает

Код:

Это Работает ->

var FechaInicio = Model != null ? DateTime.Parse(Model.FechaInicio).Date.ToString("dd/MM/yyyy") : DateTime.Parse("").Date.ToString("dd/MM/yyyy"); 

Это не работает ->

var FechaFin = Model != null ? DateTime.Parse(Model.FechaFin).Date.ToString("dd/MM/yyyy") : DateTime.Parse("").Date.ToString("dd/MM/yyyy"); 

Модель Ok и значения даты в формате строки

Ошибка:

Ошибка сервера в приложении «/». Строка не была признана действительной DateTime. Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.FormatException: Строка не была признана действительной DateTime.

Источник ошибки:

Line 13: var Ubicacion = Model != null ? Model.Ubicacion : null; 
Line 14: var FechaInicio = Model != null ? DateTime.Parse(Model.FechaInicio).Date.ToString("dd/MM/yyyy") : DateTime.Parse("").Date.ToString("dd/MM/yyyy"); 
Line 15: var FechaFin = Model != null ? DateTime.Parse(Model.FechaFin).Date.ToString("dd/MM/yyyy") : DateTime.Parse("").Date.ToString("dd/MM/yyyy"); 
+0

Что вы ожидаете 'DateTime.Parse (" ")' делать? – SLaks

+0

Что-нибудь, но пытается другим способом: var FechaFin = Model! = Null? DateTime.Parse (Model.FechaFin) .Date.ToString ("dd/MM/yyyy"): DateTime.Parse (DateTime.Today.ToString()). Date.ToString ("dd/MM/yyyy"); тоже не работает. –

+0

Мне просто нужно получить дату, существующую в Model.FechaFin, в переменную FechaFin в формате dd/mm/yyyy –

ответ

1

Ошибка прямолинейно. Строка, передаваемая в Parse не может быть интерпретирована как допустимая DateTime. По умолчанию используется формат текущей культуры при использовании Parse. Не уверен, что это точно в вашем случае, но это, вероятно, будет таким же, как вы видели, выведя DateTime.Now.ToString().

Причина: DateTime.Today.ToString() не удалось, поскольку выход будет иметь только компонент даты. Формат по умолчанию, используемый Parse, потребует компонентов даты и времени.

Если вам нужно разобрать строку в DateTime, который не соответствует формату нынешней культуры, то вам нужно использовать ParseExact вместо Parse и передать строку формата, которая показывает, как строка на основе даты и времени является отформатированный ,