asp.net-mvc – MVC5 – 数据注释 – 客户端验证没有发生?
发布时间:2020-05-24 09:26:39 所属栏目: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 – 为缺少的ASP.Net MVC控制器更正404消息
- asp.net – 获取Gridview中隐藏列的值
- asp.net-mvc – 使用查询字符串参数重写遗留URL
- asp.net – 向其他人提供一个Web API转发请求的最佳方式
- asp.net-mvc-3 – Facebook身份验证和奇怪的重定向行为
- asp.net – 使用AJAX进行WCF调用
- asp.net-core – .NET Core SDK安装程序无法在Windows 2012
- asp.net-mvc – Elmah.MVC在IIS Express下工作但不是IIS 7.
- 在ASP.Net MVC中控制JsonResult中的序列化器也称为Json函数
- 如何将asp.net文本框滚动到底部
推荐文章
站长推荐
- asp.net-mvc – ViewBag在RedirectToAction之后为
- asp.net-mvc-4 – 升级到.NET 4.5和EF 5后,“启用
- 有没有相当于PrimeFaces for ASP.NET的东西?
- iis – 如何从服务器上的经典asp页面执行bat文件
- asp.net-mvc – 使用Automapper更新现有的实体PO
- 用ADO.NET处理层次数据
- asp.net – 无法转换类型为’System.Web.UI.Lite
- asp.net – C#Web API模型绑定提供程序应如何工作
- asp.net – 将default.aspx重定向到根虚拟目录
- asp.net – FindControl()返回null
热点阅读
