2017-04-03 123 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)); 
    } 
}