asp.net-mvc – MVC5 – 数据注释 – 客户端验证没有发生?
发布时间:2020-12-16 04:38:36 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC 5应用程序,我正在使用数据注释来进行大部分验证.我班级中的一个属性如下所示: [Required(ErrorMessage = "Please enter a business name")][StringLength(80)]public string BusinessName { get; set; } 验证工作正常,但它似乎并没有像我认为的
我有一个MVC 5应用程序,我正在使用数据注释来进行大部分验证.我班级中的一个属性如下所示:
[Required(ErrorMessage = "Please enter a business name")] [StringLength(80)] public string BusinessName { get; set; } 验证工作正常,但它似乎并没有像我认为的那样在浏览器中发生.在我的页面上,我有一个保存按钮.如果我将“业务名称”字段留空并单击“保存”,则会对控制器方法发布一个帖子,该方法部分地查看,如下所示: [HttpPost] public ActionResult Create(Advertiser advertiser,FormCollection collection,HttpPostedFileBase file) { // Before we do anything,let's check to make sure any validation that's already been done is clean. if (!ModelState.IsValid) { return View(advertiser); } ... ... } 执行此方法时,模型状态已设置为无效.这很好,因为它是无效的,因为商家名称字段为空.但是,不应该在客户端进行此验证吗? 我的.cshtml文件中的字段如下所示(使用Bootstrap): <div class="form-group"> @Html.Label("Business Name",new { @class = "control-label col-md-3" }) <div class="col-md-9"> @Html.TextBoxFor(model => model.BusinessName,new { @class = "form-control",title = "",autofocus = true }) @Html.ValidationMessageFor(model => model.BusinessName) </div> </div> 我的Web.Config设置正确如下: <appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> 解决方法
我发现了我的问题.在我的BundleConfig.cs中,我有以下内容:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.min.js","~/Scripts/jquery-ui-1.10.4.min.js","~/Scripts/jquery.base64.js" )); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate.min.js","~/Scripts/jquery.validate.unobtrusive.min.js" )); 但是,我没有意识到,默认情况下,jqueryval包不会被加载到_Layout.cshtml文件中.所以我需要添加它,如下所示: @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts",required: false) 一旦我这样做了,它就是应该的.当然,这将导致它被加载到所有页面.这可能并不可取.如果没有,请根据需要在每个页面中单独加载. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 实体框架代码第一个多对多关系和继承
- asp.net-mvc – 在RedirectToRoute和RedirectToAction的ASP
- asp.net – 我对Html.TextBoxFor的工作原理有什么误解
- asp.net-mvc – 如何使用Razor ASp.NET MVC连接HTML元素的i
- asp.net-mvc-3 – @ Html.TextBoxFor文本框在验证失败后未突
- asp.net – Web.config身份验证错误
- asp.net-mvc – ASP.NET MVC架构如何适应传统的多层架构
- asp.net-mvc – ASP.NET MVC – Routes和UrlHelper
- asp.net – JQuery Live()无效
- asp.net – 可以postgresql扩展到像sql server这样的吗?是
推荐文章
站长推荐
- 使用AspNetPager与GridView完成分页
- asp.net – 检查site.master页面中的条件
- asp.net-mvc – Asp.net mvc 301从www.domain.co
- asp.net-mvc – AOP vs MVC FilterAttributes vs
- asp.net-mvc – 如何检查剃刀中的viewbag的内容
- 从旧的经典ASP页面设置301重定向到新的ASP.NET W
- asp.net-mvc – Context.User.Identity.Name为nu
- asp.net – 在DB或文件中保存长详细信息?
- asp.net – 如何自定义UseExternalSignInCookie?
- asp.net-mvc – ASP.Net Core中的动态路由
热点阅读