宝哥软件园

MVC遇上引导程序后的创建交互式、快速动态网页应用的网页开发技术表单验证

编辑:宝哥软件园 来源:互联网 时间:2021-09-12

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

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

首先Nuget获取一个引导程序3的手动音量调节编辑器模板的组件,有了他以后就有了一些模版,比如比较简单的一个文本:

@ model object div class='[电子邮件保护](Html .ValidationErrorFor(m=m,' has-error ')' @ Html .LabelFor(m=m,new { @ class=' control-label ' })div class=' controls ' @ Html .文本框("",视图数据。模板信息。格式模型值,视图包ClearTextField==true?新的{ @class='form-control明文-字段输入-块级} :新的{ @class='form-control输入-块级} ) @Html .ValidationMessageFor(m=m,null,new { @ class=' help-block ' })/div/div这样子以后在使用编辑后就会直接输出引导程序需要的html,比较方便。

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

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

公共静态MvcHtmlString验证错误(此HtmlHelper,htmlHelper,字符串字段,字符串错误){ if(hase错误(HTMl帮助器,ModelMetadata .FromStringExpression(字段,htmlHelper .视图数据),字段)返回新的MvcHtmlString(错误);否则返回null}视图中即可添加:

div class='[电子邮件保护](Html .验证错误('部门','有-错误')'标签类='控制-标签'为='部门id '所在部门/label div class=' controls ' span id=' dept name '/spana id=' BTN选择部门'选择部门/a input class=' form-control ' data-val=' true ' data-val-required='部门是必需的id=' DePartment id ' name=' DePartment id ' type=' hidden ' value=' ' @ Html .验证消息('部门,空,新{ @class='帮助块}) /div /div最后在脚本中处理创建交互式、快速动态网页应用的网页开发技术提交和回发的处理,不知道用手动音量调节的Ajax .开始通知能不能更方便点,不过个人觉得这东西不是很灵活,所以继续用ajaxSubmit及jquery.ajax:

//ready var $ div用户表单=$(' # div用户表单');$ div用户表单。对话框({ title : '新建用户',//.});$('#btnCreateUser ').click(function(){ var nodes=ztreeobjleft。getselected nodes();if(节点。长度0){ createuser form($ div user form);} })函数create user form(form){ var $ div user form=form;$.ajax({ url: 'CreateUser ',success:函数(html){ createuserformsuccallback(html,$ div user form);} });}函数InitSelectDepartmentWhenCreateUser(){ $(' # btnselectiondepartment ').部门选择({ onselected :)函数(名称,id) { $('#deptname ').文字(名称);$('#DepartmentId ').val(id);} });}函数CreateUserFormSuccessCallback(html,form){ var $ div user form=form;$divuserform.children().儿童()。html(html);$('#divuserform ').对话框("打开");var $ form=$ div用户表单。find(' form ')InitSelectDepartmentWhenCreateUser();$表单。submit(function(){ $ form。AJaxsubmit(函数(数据)){ if(数据==' success '){ $(' # div用户表单')).对话框("关闭");$('#divuserform ').clearForm();} else { CreateUserFormSuccessCallback(数据、表单);} });事件。prevent default();});}后台行动方法中我们便可为其补充自定义验证:

if(!部门Id .HasValue) { ModelState .添加模型错误('部门','必须选择部门');} if (ModelState .IsValid) { user .Id=Guid .NewGuid();用户创建时间=日期时间.现在;if (DepartmentId .HasValue){ var dept=new DeptUserRole();部门。部门id=部门id .价值;dept . IsMain=truedept。角色Id=角色Id .价值;用户。添加(部门);} db .用户。添加(用户);等待数据库SaveChangesAsync();返回内容("成功");}返回视图(用户);大致效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+