2017-04-03 88 views
2

当传递一个参数,有时我会收到以下错误抛出日期时间参数抛出异常

“字符串未被识别为有效的DateTime”

日期这样它不喜欢:

(铬)

date=2017-03-28T13%3a01%3a59+01%3a00

date=2017-04-01T10%3a35%3a57+01%3a00

(Safari浏览器10)

date=2017-06-02

public ActionResult Add(string date = null) 
{ 
    DateTime startTime = DateTime.Now; 
    if (date != null) 
    { 
     startTime = DateTime.Parse(date); 
    } 
} 

任何想法?

+3

为什么解析自己当模特,粘结剂可以为你做的日期(使用'公众的ActionResult添加(DateTime的日期= NULL)'?)? – haim770

+1

你的日期看起来是编码的,这对'DateTime.Parse'有问题。 – Kritner

+3

你应该可能解码日期。尝试'DateTime.Parse(Uri.UnescapeDataString(date));' – Pikoh

回答

2

您可以尝试取消转义的字符串:

public ActionResult Add(string date = null) 
{ 
    DateTime startTime = DateTime.Now; 

    if (date != null) 
    { 
     startTime = DateTime.Parse(Uri.UnescapeDataString(date)); 
    } 
} 
相关问题