AspNetCore MVC页面数据提交验证
发布时间:2020-12-16 07:11:40 所属栏目:asp.Net 来源:网络整理
导读:2019/05/14,AspNetCore 2.2.0 主要用到了jquery.validate(前端验证)、数据注解(后端模型验证) ? 一、建立模型类User,使用数据注释 using System.ComponentModel.DataAnnotations; namespace Demo.Models { public class User { [Key] public int Id { g
2019/05/14,AspNetCore 2.2.0
主要用到了jquery.validate(前端验证)、数据注解(后端模型验证)
?
一、建立模型类User,使用数据注释using System.ComponentModel.DataAnnotations; namespace Demo.Models { public class User { [Key] public int Id { get; set; } [Display(Name = "登录账号")] [Required(ErrorMessage ="登录账号必填")] [StringLength(15,ErrorMessage = "字符长度不能超过15个字")] public string LoginId { get; set; } public string PassWord { get; set; } public string Name { get; set; } [Range(minimum:1,maximum:100,ErrorMessage ="请输入1到100的数字")] public int Age { get; set; } } }
代码中部分数据注释的作用效果如上图所示,更多注释可以使用百度,例如远程验证、邮箱地址、正则表达式等 二、前端form表单,使用TagHelpers<form asp-action="Create"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="LoginId" class="control-label"></label> <input asp-for="LoginId" class="form-control" /> <span asp-validation-for="LoginId" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="PassWord" class="control-label"></label> <input asp-for="PassWord" class="form-control" /> <span asp-validation-for="PassWord" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Name" class="control-label"></label> <input asp-for="Name" class="form-control" /> <span asp-validation-for="Name" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Age" class="control-label"></label> <input asp-for="Age" class="form-control" /> <span asp-validation-for="Age" class="text-danger"></span> </div> <div class="form-group"> <input type="submit" value="Create" class="btn btn-primary" /> </div> </form> 注意点: 1.aspnetcore用<form asp-action="Create">这种写法,自动防范了请求伪造(csxf攻击) 2.<span asp-validation-for="PassWord" class="text-danger"></span>这种区块就是用于显示验证错误信息的地方,错误信息会自动加入到span标签中 三、前端引入jquery.validate,注意使用之前要先引入jq<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script> <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script> 四、后台对应Create方法[HttpPost] [ValidateAntiForgeryToken] public async Task<IActionResult> Create([Bind("Id,LoginId,PassWord,Name,Age")] User user) { if (string.IsNullOrWhiteSpace(user.Name)) { //名称需要填写,此处是为了演示AddModelError方法,实际Name必填应使用Required注释控制 //ModelState.AddModelError("","名称需要填写"); ModelState.AddModelError(nameof(Models.User.Name),"名称需要填写"); return View(nameof(Create)); } if (ModelState.IsValid) { _context.Add(user); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } return View(user); } 使用ModelState.AddModelError(nameof(Models.User.Name),"名称需要填写");方法提示错误信息,会把错误信息给到对应span中 AddModelError第一个参数,如果是空字符串,则会把错误信息给到<div asp-validation-summary="ModelOnly" class="text-danger"></div>中 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在asp.net mvc中,单个项目与多个项目实现的
- asp.net-mvc – 授权属性生命周期
- IIS 7.0的ASP.NET进程是什么?
- asp.net – 是否可以将.ASPXAUTH用于我自己的日志系统?
- asp.net – 使用/ signalr / ping调用时使用长轮询
- 为什么OutputCache是??ASP.NET MVC中的结果过滤器而不是动作
- 任何人都有基准/速度测试比较经典ASP与ASP.NET 2.0或3.5?
- ASP.NET MVC UrlHelper.GenerateUrl异常:“无法使用导航..
- 如何使用ASP.NET授权允许访问.css文件?
- ASP.NET计算访问者,而不是机器人
推荐文章
站长推荐
- asp.net – Jquery并触发一个隐藏按钮的单击
- asp.net-mvc-4 – 使用Durandal的会话数据
- asp.net-mvc – 如何判断MVC AsyncController线程
- 体验使用gcServer =“true”为.NET设置垃圾回收器
- asp.net – 限制关于AJAX调用的视图状态信息
- asp.net-mvc – 在ASP.NET MVC中使用域对象和视图
- asp.net – 什么是Kestrel(vs IIS/Express)
- asp.net-mvc – 如何使用AngularJs显示MVC登录的
- asp.net-mvc – 使用ViewData或不使用ViewData
- asp.net-core – 从appsettings.json获取Connect
热点阅读