asp.net-mvc-3 – MVC3客户端验证无法使用Ajax.BeginForm表单
发布时间:2020-12-16 07:34:07 所属栏目:asp.Net 来源:网络整理
导读:我在局部视图中有以下表格 @model PartDetail@using (Ajax.BeginForm("Create","Part",null,new AjaxOptions { UpdateTargetId = "update_panel"})){ h3New @Model.PartType/h3 p Serial Number: strong @Html.EditorFor(model = model.SerialNumber) @Html.
我在局部视图中有以下表格
@model PartDetail @using (Ajax.BeginForm("Create","Part",null,new AjaxOptions { UpdateTargetId = "update_panel"})) { <h3>New @Model.PartType</h3> <p> Serial Number: <strong> @Html.EditorFor(model => model.SerialNumber) @Html.ValidationMessageFor(model => model.SerialNumber) </strong> </p> <p> Name: <strong> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </strong> </p> ...... more relatively boiler plate code here...... <p> <input type="submit" class="btn primary" value="Save Part"/> </p> } 随着模型 public class PartDetail { public string DateCreated { get; set; } [StringLength(255,MinimumLength = 3)] public string Description { get; set; } public Guid ID { get; set; } public string IsActive { get; set; } public string Manufacturer { get; set; } public IEnumerable<SelectListItem> Manufacturers { get; set; } [StringLength(100,MinimumLength = 3)] public string Name { get; set; } public string PartType { get; set; } [Required] [StringLength(100,MinimumLength = 3)] public string SerialNumber { get; set; } } 我参考(在我的部分视图的父视图中) <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"> </script> <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"> </script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"> </script> 没有任何东西得到验证.如果我在序列号文本框中没有输入任何内容并按提交,则将其保存到数据库中没有任何问题. 解决方法
尝试将一个OnBegin回调添加到AjaxOptions,这应该工作.
function validateForm() { return $('form').validate().form(); } @using (Ajax.BeginForm("Create",new AjaxOptions { UpdateTargetId = "update_panel",OnBegin = "validateForm" })) ... 如果这对您不起作用,另一种解决方案可能是使用jQuery提交表单.这将是我的首选解决方案. <div id="result"></div> @using (Html.BeginForm()) { <h3>New @Model.PartType</h3> <p>Serial Number: <strong> @Html.EditorFor(model => model.SerialNumber) @Html.ValidationMessageFor(model => model.SerialNumber) </strong> </p> <p> Name: <strong> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </strong> </p> ...... more relatively boiler plate code here...... <p> <input type="submit" class="btn primary" value="Save Part"/> </p> } jQuery / JS函数提交表单 $(function () { $('form').submit(function () { $.validator.unobtrusive.parse($('form')); //added if ($(this).valid()) { $.ajax({ url: this.action,type: this.method,data: $(this).serialize(),success: function (result) { $('#result').html(result); } }); } return false; }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何使用可选的查询字符串参数测试MVC路由
- asp.net-mvc – 如何在客户端Kendo UI网格中实现服务器端分
- 在ASP.NET MVC4 Web应用程序上,w3wp的CPU使用率上升到100%
- 在同一台物理计算机上的应用程序(asp.net)之间共享缓存
- asp.net-mvc – 使用jQuery ASP.NET MVC自动保存表单输入
- asp.net – SmtpClient.SendAsync调用自动取消
- asp.net – 带有IE 11的ReportViewer 11:报告高度超出限制
- ASP.NET ReportViewer Google Chrome CPU使用情况
- asp.net C#中的SQL IN运算符
- .net – 在Request.Form中搜索控件/解析NameValueCollectio
推荐文章
站长推荐
- asp.net – 在主页面加载中丢失了ViewState对象
- asp.net – 在GET期间是否有规范/ RESTful方式向
- .net – 如何修复System.Data.Edm.EdmEntityType
- asp.net-mvc – 如何在没有其他操作匹配的情况下
- asp.net – 在.net中使用selenium 2.0 web驱动程
- asp.net-mvc-4 – 用于空响应的ASP.NET Web API和
- asp.net-mvc-3 – 获取所有聚合根实体子实体?
- asp.net-mvc – 首先通过NuGet尝试StructureMap和
- asp.net-mvc – 获取Web层之外的当前Principal
- asp.net-mvc – 适当地url编码空间字符
热点阅读