在提交表单之前,我需要验证用户的输入字段值.
我已经在我的自定义控制器中创建了一个动作,并用它来装饰了它:
动作名称:CheckValue
控制器名称:验证
[Remote("CheckValue","Validate"),ErrorMessage="Value is not valid"] public string Value { get; set; }
问题是当我按提交,表单正在提交,然后如果用户输入的值无效,则显示“无效”消息.
如何验证用户输入的值,如果值无效,则阻止提交表单,并显示错误消息?
如果我尝试使用JavaScript检查表单是否有效$(“#formId”).valid()返回true,这意味着无论该值的状态是什么(有效还是无效)表单都是有效的.
另一方面,如果我使用[必需]属性来装饰另一个字段,则表单不会被提交,并且为该字段显示所需的错误.但是,远程验证字段的场景后面不会发生验证.
解决方法
远程验证在MVC中的完整解决方案.它将检查数据库中的电子邮件,然后检查数据库中是否存在,然后显示错误:
Email already exists
帐号控制器动作
[AllowAnonymous] [HttpPost] public ActionResult CheckExistingEmail(string Email) { try { return Json(!IsEmailExists(Email)); } catch (Exception ex) { return Json(false); } } private bool IsEmailExists(string email) => UserManager.FindByEmail(email) != null;
2.添加模型验证
[Required] [MaxLength(50)] [EmailAddress(ErrorMessage = "Invalid Email Address")] [System.Web.Mvc.Remote("CheckExistingEmail","Account",HttpMethod = "POST",ErrorMessage = "Email already exists")] public string Email { get; set; }
3.添加脚本
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
它可能会帮助你.谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。