2012-12-20 53 views
1

我有這樣的代碼裏面:如何驗證日期時間TextBoxFor ASP.NET MVC

@Html.TextBoxFor(m => Model.MyDateTime) 

MyDateTime - 是DateTime對象。 它顯示文本框內的正確日期和時間:09/10/2010 05:19:56 PM 但是,當我嘗試點擊提交按鈕時,它顯示它是不正確的值。我使用jquery.validate.unobtrusive.js文件進行驗證。

+0

你爲「MyDateTime」屬性設置驗證的方式是什麼? – HackedByChinese

+0

我有[問過過去同樣的事情](http://stackoverflow.com/questions/12930640/in-asp-net-mvc-4-how-to-validate-that-a-datetime-value-被輸入的-ON-THE-correc)。看到那裏接受的答案。 – aknuds1

回答

2

我在我的評論中指出的解決方案的要點是,您可以使用視圖的專用模型,其中包含字符串表示而不是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; } 
} 
0

您可以使用dataannotaion來正確驗證yor模型字段。使用這樣的annatation你可以在你的annotation傳遞字符串模式中手動提供日期格式。在這種情況下,它將完全使用默認的mvc驗證。

1

數據註解將爲您工作!