Pra*_*oir 6 asp.net-mvc unobtrusive-validation
我只是想在提交时接受ddMMyyyy格式的日期.但它给出了一个错误
FromDate字段必须是日期.

但是,当我在MMddyyyy中输入日期时,它会严格接受pkkttrfg.
我的模型是
public class CompareModel
{
[Required]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime FromDate { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime TODate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的观点部分是
<div class="form-group">
@Html.LabelFor(model => model.FromDate, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.FromDate)
@Html.ValidationMessageFor(model => model.FromDate)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.TODate, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.TODate)
@Html.ValidationMessageFor(model => model.TODate)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
问题是在幕后使用javascript来验证这一点,你需要覆盖它.
jQuery(function ($) {
$.validator.addMethod('date',
function (value, element) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
});
Run Code Online (Sandbox Code Playgroud)
这是从这个答案
试试吧
<system.web>
<globalization culture="en-GB"/>
</System.web>
Run Code Online (Sandbox Code Playgroud)
它对我有同样的问题