亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > MVC遇上bootstrap后的ajax表單驗證

MVC遇上bootstrap后的ajax表單驗證

熱門標簽:中國地圖標注不明確情況介紹表 怎樣在地圖標注文字 上海企業外呼系統價錢 立陶宛地圖標注 電銷機器人 長春 大眾點評400電話怎么申請 地圖標注推銷坑人 東平縣地圖標注app 河間市地圖標注app

使用bootstrap后他由他自帶的樣式has-error,想要使用它就會比較麻煩,往常使用jquery.validate的話只有使用他自己的樣式了,而且有模型在使用模型驗證更方便點。怎么解決呢?

當然你可以專門寫一個針對此的jquery插件,我覺得蠻麻煩的,喜歡寫插件的研究下吧。 

首先Nuget獲取一個 MVC EditorTemplates for Bootstrap 3 的組件,有了他以后就有了一些模版,比如比較簡單的一個Text: 

@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,比較方便。 

我們看到里面已經有了驗證失敗的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中即可添加:

    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:

//ready
      var $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);
 

大致效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Bootstrap Validator 表單驗證
  • Bootstrap中的表單驗證插件bootstrapValidator使用方法整理(推薦)
  • 基于Bootstrap+jQuery.validate實現表單驗證
  • 實用又漂亮的BootstrapValidator表單驗證插件
  • JS組件Form表單驗證神器BootstrapValidator
  • 基于Bootstrap+jQuery.validate實現Form表單驗證
  • Ajax注冊用戶時實現表單驗證
  • 自己編寫的支持Ajax驗證的JS表單驗證插件
  • ajax jquery 異步表單驗證示例代碼
  • 基于PHP+Ajax實現表單驗證的詳解

標簽:四川 營口 本溪 玉樹 遼寧 內江 銅川 益陽

巨人網絡通訊聲明:本文標題《MVC遇上bootstrap后的ajax表單驗證》,本文關鍵詞  MVC,遇上,bootstrap,后的,ajax,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MVC遇上bootstrap后的ajax表單驗證》相關的同類信息!
  • 本頁收集關于MVC遇上bootstrap后的ajax表單驗證的相關信息資訊供網民參考!
  • 推薦文章
    尤物视频网站在线观看| 久草免费在线视频| a级毛片免费全部播放| 国产一区二区精品久久| 精品国产一区二区三区免费| 天天做日日爱| 亚州视频一区二区| 日韩在线观看视频黄| 黄色福利片| 久久精品免视看国产成人2021| 久久国产精品自由自在| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 97视频免费在线| 国产一区二区精品| 亚久久伊人精品青青草原2020| 久久国产精品自线拍免费| 国产一级生活片| 日韩欧美一及在线播放| 欧美激情一区二区三区视频| 国产精品12| 午夜欧美福利| 91麻豆精品国产自产在线观看一区 | 可以免费看毛片的网站| 国产视频网站在线观看| 色综合久久天天综合观看| 一级毛片视频免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产视频网站在线观看| 国产不卡高清在线观看视频| 中文字幕Aⅴ资源网| 午夜在线影院| 国产91精品一区二区| 亚洲精品影院一区二区| 色综合久久手机在线| 欧美激情一区二区三区在线| 欧美激情一区二区三区中文字幕| 精品在线观看一区| 亚洲天堂免费| 日韩一级黄色片| 国产伦精品一区三区视频| 午夜激情视频在线观看| 韩国三级视频在线观看| 日韩一级黄色| 国产视频一区二区在线播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚欧成人乱码一区二区| 欧美1区| 青青久久精品国产免费看| 亚洲天堂在线播放| 亚洲wwwwww| 国产成人精品综合在线| 欧美国产日韩一区二区三区| 欧美另类videosbestsex久久| 91麻豆tv| 二级片在线观看| 日本在线不卡免费视频一区| 91麻豆爱豆果冻天美星空| 成人a大片高清在线观看| 成人免费观看的视频黄页| 99色吧| 九九免费高清在线观看视频| 亚洲女初尝黑人巨高清在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品国产一区二区三区久久久蜜臀 | 99热精品在线| 成人免费观看网欧美片| 国产a免费观看| 天天做日日爱夜夜爽| 日韩男人天堂| 国产综合成人观看在线| 精品在线观看一区| 亚洲精品永久一区| 一本伊大人香蕉高清在线观看| 欧美另类videosbestsex视频| 国产一区二区精品在线观看| 久久久久久久免费视频| 欧美a级v片不卡在线观看| 国产福利免费观看| 午夜在线亚洲| 成人高清视频在线观看| 中文字幕一区二区三区 精品| 黄色短视屏| 精品毛片视频| 91麻豆精品国产片在线观看| 国产不卡在线播放| 精品国产香蕉在线播出 | 国产伦精品一区三区视频| 精品国产香蕉在线播出 | 国产欧美精品| 国产原创视频在线| 精品美女| 日韩在线观看视频黄| 欧美一区二区三区在线观看| 国产a视频| 中文字幕一区二区三区精彩视频| 国产网站免费视频| 久久精品免视看国产明星| 在线观看导航| 青草国产在线| 人人干人人插| 美女免费毛片| 91麻豆爱豆果冻天美星空| 欧美大片aaaa一级毛片| 91麻豆tv| 欧美激情一区二区三区在线播放| 亚洲 欧美 成人日韩| 成人在免费观看视频国产| 香蕉视频亚洲一级| 深夜做爰性大片中文| 精品在线视频播放| 日韩中文字幕一区二区不卡| 精品视频在线观看视频免费视频| 欧美激情一区二区三区视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美另类videosbestsex高清| 欧美大片aaaa一级毛片| 麻豆系列 在线视频| 国产成人精品综合| 日韩免费在线观看视频| 亚欧乱色一区二区三区| 国产高清在线精品一区二区 | 国产一区二区精品久久91| 香蕉视频三级| 黄视频网站免费看| 中文字幕一区二区三区 精品| 国产原创中文字幕| 午夜久久网| 日韩免费在线观看视频| 国产一级生活片| 日韩女人做爰大片| 九九九在线视频| 国产高清视频免费观看| 欧美日本免费| 久久国产影院| 国产伦久视频免费观看 视频| 99久久精品国产高清一区二区 | 国产视频一区二区三区四区| 欧美大片a一级毛片视频| 亚洲精品久久玖玖玖玖| 青草国产在线观看| 九九国产| 成人免费观看男女羞羞视频| 亚洲精品影院一区二区| 国产福利免费观看| 91麻豆爱豆果冻天美星空| 国产麻豆精品视频| 日本乱中文字幕系列| 你懂的福利视频| 天堂网中文字幕| 你懂的日韩| 可以免费看污视频的网站| 日韩欧美一及在线播放| 日韩在线观看视频免费| 久久久久久久男人的天堂| 精品久久久久久中文| 91麻豆精品国产自产在线| 国产成人女人在线视频观看| 欧美a级片视频| 精品国产三级a| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 人人干人人草| 国产91精品系列在线观看| 精品视频在线观看免费| 成人高清护士在线播放| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产麻豆精品hdvideoss| 精品视频一区二区三区免费| 久久久久久久久综合影视网| 国产伦精品一区三区视频| 91麻豆tv| 欧美激情影院| 国产精品12| 四虎久久精品国产| 日本免费看视频| 999久久狠狠免费精品| 成人高清视频在线观看| 在线观看导航| 91麻豆国产级在线| 久久99这里只有精品国产| 日韩中文字幕在线观看视频| 日本在线不卡视频| 免费国产在线观看| 午夜精品国产自在现线拍| 国产麻豆精品hdvideoss| 国产国语在线播放视频| 国产激情视频在线观看| 国产精品免费久久| 麻豆网站在线看| 欧美大片一区| 精品国产亚洲一区二区三区| 成人免费一级纶理片| 日本在线不卡视频| 国产视频在线免费观看| 国产不卡在线观看| 午夜激情视频在线观看| 久久精品免视看国产明星| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩一级黄色| 精品国产一区二区三区久久久狼 | 日韩专区在线播放|