我有這樣的代碼裏面:如何驗證日期時間TextBoxFor ASP.NET MVC
@Html.TextBoxFor(m => Model.MyDateTime)
MyDateTime - 是DateTime對象。 它顯示文本框內的正確日期和時間:09/10/2010 05:19:56 PM 但是,當我嘗試點擊提交按鈕時,它顯示它是不正確的值。我使用jquery.validate.unobtrusive.js文件進行驗證。
我有這樣的代碼裏面:如何驗證日期時間TextBoxFor ASP.NET MVC
@Html.TextBoxFor(m => Model.MyDateTime)
MyDateTime - 是DateTime對象。 它顯示文本框內的正確日期和時間:09/10/2010 05:19:56 PM 但是,當我嘗試點擊提交按鈕時,它顯示它是不正確的值。我使用jquery.validate.unobtrusive.js文件進行驗證。
我在我的評論中指出的解決方案的要點是,您可以使用視圖的專用模型,其中包含字符串表示而不是DateTime類型,從而使您可以使用RegularExpressionAttribute輕鬆驗證該值。當您在服務器上接收到此模型(從客戶端發佈)時,只需將其轉換爲相應的數據庫模型即可。
public class ViewModel
{
[Required]
[RegularExpression("\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}:\d{2}")]
public string MyDateTime { get; set; }
public Model ToPoco()
{
return new Model {
MyDateTime = DateTime.Parse(this.MyDateTime, "MM-dd-yyyy H:mm:ss")
};
}
}
public class Model
{
DateTime MyDateTime { get; set; }
}
您可以使用dataannotaion來正確驗證yor模型字段。使用這樣的annatation你可以在你的annotation傳遞字符串模式中手動提供日期格式。在這種情況下,它將完全使用默認的mvc驗證。
數據註解將爲您工作!
你爲「MyDateTime」屬性設置驗證的方式是什麼? – HackedByChinese
我有[問過過去同樣的事情](http://stackoverflow.com/questions/12930640/in-asp-net-mvc-4-how-to-validate-that-a-datetime-value-被輸入的-ON-THE-correc)。看到那裏接受的答案。 – aknuds1