我目前正在用ASP.NET MVC開發一個Web項目。我有一個創建頁面,它通過SQL服務器創建一個對應於數據庫表的實體。我需要一些驗證,而不僅僅是'required'標記,所以我選擇使用自定義驗證類。我編寫的類完全像我的其他自定義驗證類,完美的工作,但由於某種原因,這個類沒有射擊頁面提交,無論我嘗試。自定義類驗證不起作用?
視圖模型:
public class MyViewModel {
//my other properties
[ValidateCreateDate(ErrorMessage = "Date must be after or on today's date.")]
public DateTime? RequestedDate { get; set; }
}
類:
public class ValidateCreateDateAttribute : RequiredAttribute
{
private context db = new context();
public override bool IsValid(object value) //breakpoint is never hit here
{
//code to check if it is valid or not
}
}
查看:
@model context.MyViewModel
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("Create", "Data", FormMethod.Post))
{
<div class="row">
<div class="col-md-2">
@Html.EditorFor(model => model.RequestedDate)
</div>
<div class="col-md-2">
@Html.ValidationMessageFor(model => model.RequestedDate)
</div>
<div class="col-md-8">
<button type="submit">Submit</button>
</div>
</div>
}
<script type="text/javascript">
$(function() {
$("#RequestedDate").datepicker();
});
</script>
ClientValidationEnabled和UnobtrusiveJavaScriptEnabled的配置,包括js-文件不顯眼? – Mackan
是的,這兩個都已啓用,我確實在我的實際代碼中添加了不顯眼的文件,謝謝@Mackan –
@EliHellmer您的表單是否正確提交?它是否觸及「創建」操作方法?你的代碼看起來不錯,儘管 – Shyju