我尝试验证两个日期(开始 - >结束),其中只需要第一个日期,但是当用户输入第二个日期时,它必须大于第一个日期。我正在使用带有“PassOnNull”参数的MVC Foolproof包。
模型
<Required()> _
<DisplayName("Event Start")> _
<DataType(DataType.DateTime)> _
'This doesn't work:
Public Property EventStart As Nullable(Of DateTime)
'This does work but with the ugly default value in the textbox
Public Property EventStart As DateTime
<DisplayName("Event End")> _
<DataType(DataType.DateTime)> _
<GreaterThan("EventStart", PassOnNull:=True)> _
Public Property EventEnd As Nullable(Of DateTime)
我可以将它设置为EventStart日期而不是 NOT 可以为空但是我在文本框中得到一个默认日期,其值为“01.01.0001 00:00:00”,即'甚至我的国家设置!
所以我想让它与可以为空的模型合作,或者摆脱“01.01.0001 00:00:00”的价值并改为使用空白的文本!
答案 0 :(得分:1)
在Codeplex上阅读http://foolproof.codeplex.com/discussions/220498之后,我现在知道它可以反过来了:
<Required()> _
<DisplayName("Event Start")> _
<LessThan("EventEnd", PassOnNull:=True)> _
Public Property EventStart As Nullable(Of DateTime)
<DisplayName("Event End")> _
Public Property EventEnd As Nullable(Of DateTime)