ASP.NET MVC 3 Razor DateTime.Parse不起作用

时间:2015-12-10 19:14:48

标签: asp.net-mvc-3 razor

我试图用日期进行演员表但是它引发了我的异常

代码是:

这项工作 - >

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。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.FormatException:String未被识别为有效的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");

1 个答案:

答案 0 :(得分:1)

错误很简单。传递给Parse的字符串无法解释为有效的DateTime。默认情况下,使用Parse时会使用当前区域性的格式。不确定在您的情况下究竟是什么,但它可能与输出DateTime.Now.ToString()时看到的相同。

DateTime.Today.ToString()失败的原因是因为输出只有一个日期组件。 Parse使用的默认格式需要日期和时间组件。

如果您需要将字符串解析为与当前文化格式不匹配的DateTime,则需要使用ParseExact代替Parse并传递格式字符串,显示基于字符串的日期时间的格式。