Javascript 在部分视图MVC5.2中开始表单客户端验证
Index.cshtml:Javascript 在部分视图MVC5.2中开始表单客户端验证,javascript,jquery,ajax,asp.net-mvc,unobtrusive-validation,Javascript,Jquery,Ajax,Asp.net Mvc,Unobtrusive Validation,Index.cshtml: <div class="search-ctn"> @{ Html.RenderAction(MVC.Home.Search()); } </div> MVC.Home.Search操作: [HttpPost, ValidateAntiForgeryToken] public virtual PartialViewResult Search(SearchVM partnerSearch) { //
<div class="search-ctn">
@{ Html.RenderAction(MVC.Home.Search()); }
</div>
MVC.Home.Search操作:
[HttpPost, ValidateAntiForgeryToken]
public virtual PartialViewResult Search(SearchVM partnerSearch)
{
// Search made here
}
视图模型:
public class SearchVM
{
[Required]
public string Service { get; set; }
}
图书馆:
jquery-2.1.3.js
jquery.unobtrusive-ajax.js (v3.2.3)
jquery.validate.js (v1.13.1)
jquery.validate.unobtrusive.js (v3.2.3)
在一个使用jquery-1.10.2.js的旧项目中,我像这样激活表单的验证:
$.validator.unobtrusive.addValidation("#sch-frm");
它工作得很好,但现在它提交表单时忽略了验证。由于您使用
Html.Action()
将部分包含在索引视图中(即,它不是在页面呈现后动态添加的内容),因此不必对验证程序执行任何操作(不应该是,这表明您还有其他问题。)什么是MVC.Home.Search()
?-您不应该在帮助程序中有方法。什么是.addValidation(#form”);
?什么是#form'?-您没有带id=“form”的元素`您好,谢谢您的评论。表单只是提交,不显示任何验证错误消息。MVC.Search是执行搜索的操作(我将用它更新问题)。表单id为“sch form”,请允许我更正,很抱歉出错。请再说一遍-什么是MVC.Home.Search()
,什么是.addValidation())
?为什么视图中的模型是SearchVM
,但返回到PartnerSearchVM
?您好,MVC.Home.Search是问题中的操作名称(我使用T4MVC插件来避免字符串)和addValidation:能够在PartialView中验证表单。很抱歉,我已将帖子更正回SearchVM。您只需在页面呈现后添加动态内容时重新解析验证程序。RenderAction
将部分视图添加为视图的一部分,以便addValidation
不是必需的(也从来不是)
$.validator.unobtrusive.addValidation("#sch-frm");