最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MVC遇上bootstrap后的ajax表单验证

来源:动视网 责编:小OO 时间:2020-11-27 19:47:38
文档

MVC遇上bootstrap后的ajax表单验证

使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点。怎么解决呢。当然你可以专门写一个针对此的jquery插件,我觉得蛮麻烦的,喜欢写插件的研究下吧。首先Nuget获取一个 MVC EditorTemplates for Bootstrap 3 的组件,有了他以后就有了一些模版,比如比较简单的一个Text。
推荐度:
导读使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点。怎么解决呢。当然你可以专门写一个针对此的jquery插件,我觉得蛮麻烦的,喜欢写插件的研究下吧。首先Nuget获取一个 MVC EditorTemplates for Bootstrap 3 的组件,有了他以后就有了一些模版,比如比较简单的一个Text。
 这篇文章主要为大家详细介绍了MVC遇上bootstrap后的ajax表单验证,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点。怎么解决呢?

当然你可以专门写一个针对此的jquery插件,我觉得蛮麻烦的,喜欢写插件的研究下吧。

首先Nuget获取一个 MVC EditorTemplates for Bootstrap 3 的组件,有了他以后就有了一些模版,比如比较简单的一个Text:

@model object
<p class="form-group@(Html.ValidationErrorFor(m => m, " has-error"))">
 @Html.LabelFor(m => m, new { @class = "control-label" })
 <p class="controls">
 @Html.TextBox(
 "",
 ViewData.TemplateInfo.FormattedModelValue,
 ViewBag.ClearTextField == true ? new { @class = "form-control clear-text-field input-block-level" } : new { @class = "form-control input-block-level" } )
 @Html.ValidationMessageFor(m => m, null, new { @class = "help-block" })
 </p>
</p>

这样子以后在使用EditorFor后就会直接输出bootstrap需要的html,比较方便。

我们看到里面已经有了验证失败的has-error的处理,第二个问题来了,我们需要前端验证,ajax验证也行啊,还有自定义验证呢?

于是乎继续利用MVC自带的模型验证,刚才获取的组件中有个Validation类,我们先在里面添加一个扩展方法用于非强类型

 public static MvcHtmlString ValidationError(this HtmlHelper htmlHelper, string field, string error)
 {
 if (HasError(htmlHelper, ModelMetadata.FromStringExpression(field, htmlHelper.ViewData), field))
 return new MvcHtmlString(error);
 else
 return null;
 }

View中即可添加:

 <p class="form-group@(Html.ValidationError("Department", " has-error"))">
 <label class="control-label" for="DepartmentId">所在部门</label>
 <p class="controls">
 <span id="deptname"> </span><a id="btnSelectDepartment">选择部门</a>
 <input class="form-control" data-val="true" data-val-required="部门是必需的。" id="DepartmentId" name="DepartmentId" type="hidden" value="">
 @Html.ValidationMessage("Department", null, new { @class = "help-block" })
 </p>
 </p>

最后在脚本中处理ajax提交和回发的处理,不知道用MVC的Ajax.BeginForm能不能更方便点,不过个人觉得这东西不是很灵活,所以继续用ajaxSubmit及jquery.ajax:

后台Action方法中我们便可为其补充自定义验证:

 if (!DepartmentId.HasValue)
 {
 ModelState.AddModelError("Department", "必须选择部门");
 }
 
 if (ModelState.IsValid)
 {
 user.Id = Guid.NewGuid();
 user.CreateTime = DateTime.Now;
 if (DepartmentId.HasValue)
 {
 var dept = new DeptUserRole();
 dept.DepartmentId = DepartmentId.Value;
 dept.IsMain = true;
 dept.RoleId = RoleId.Value;
 user.DeptUserRoles.Add(dept);
 }
 db.Users.Add(user);
 await db.SaveChangesAsync();
 return Content("success");
 }
 
 return View(user);

大致效果:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

AJAX请求队列实现

使用ajax异步提交表单的几种方法总结

解决AJAX请求中含有数组的办法

文档

MVC遇上bootstrap后的ajax表单验证

使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jquery.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点。怎么解决呢。当然你可以专门写一个针对此的jquery插件,我觉得蛮麻烦的,喜欢写插件的研究下吧。首先Nuget获取一个 MVC EditorTemplates for Bootstrap 3 的组件,有了他以后就有了一些模版,比如比较简单的一个Text。
推荐度:
标签: 验证 bo ajax
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top