@model object<div class="form-group@(Html.ValidationErrorFor(m => m, " has-error"))">@Html.LabelFor(m => m, new { @class = "control-label" })<div 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" })</div></div>这样子以后在使用EditorFor后就会直接输出bootstrap需要的html,比较方便。
public static MvcHtmlString ValidationError(this HtmlHelper htmlHelper, string field, string error){if (HasError(htmlHelper, ModelMetadata.FromStringExpression(field, htmlHelper.ViewData), field))return new MvcHtmlString(error);elsereturn null;}View中即可添加:
<div class="form-group@(Html.ValidationError("Department", " has-error"))"><label class="control-label" for="DepartmentId">所在部门</label><div 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" })</div></div>最后在脚本中处理ajax提交和回发的处理,不知道用MVC的Ajax.BeginForm能不能更方便点,不过个人觉得这东西不是很灵活,所以继续用ajaxSubmit及jquery.ajax:
//readyvar $divuserform = $("#divuserform");$divuserform.dialog({title: "新建用户",//.....});$("#btnCreateUser").click(function () {var nodes = zTreeObjleft.getSelectedNodes();if (nodes.length > 0) {CreateUserForm($divuserform);}})function CreateUserForm(form) {var $divuserform = form;$.ajax({url: "CreateUser",success: function (html) {CreateUserFormSuccessCallback(html, $divuserform);}});} function InitSelectDepartmentWhenCreateUser() {$("#btnSelectDepartment").departmentSelection({onSelected: function (name, id) {$("#deptname").text(name);$("#DepartmentId").val(id);}});} function CreateUserFormSuccessCallback(html, form) {var $divuserform = form;$divuserform.children().children().html(html);$("#divuserform").dialog("open");var $form = $divuserform.find("form")InitSelectDepartmentWhenCreateUser();$form.submit(function () {$form.ajaxSubmit(function (data) {if (data == "success") {$("#divuserform").dialog("close");$("#divuserform").clearForm();}else {CreateUserFormSuccessCallback(data, form);}});event.preventDefault();});}后台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);大致效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。