asp.net-mvc - 使用 jquery.validation.js 时提交按钮不发布数据
问题描述
为了使用远程验证,C# Asp .net core,我添加了这两个库
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.3/dist/jquery.validate.js"></script>
但是这些停止提交按钮和发布数据。我的模型道具:
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Captions))]
[Display(Name = "Username", ResourceType = typeof(Titles))]
[Remote("ValidateUsername", "SignUp")]
[RegularExpression("^[a-zA-Z_]*$", ErrorMessageResourceName = "Wrong_Format", ErrorMessageResourceType = typeof(Captions))]
public string Username { get; set; }
在控制器中:
[HttpPost]
public async Task<IActionResult> Index(SignUpViewModel model)
{
if (!ModelState.IsValid) return View(model);
var user = _mapper.Map<User>(model);
var addUserResult = await _userManager.CreateAsync(user, model.Password);
if (addUserResult.Succeeded)
{
var addRoleResult = await _userManager.AddToRoleAsync(user, RoleNames.Client);
if (addRoleResult.Succeeded)
{
var code = GenerateValidationCode();
bool sendSmsResult = _sendSms.SendSignUpValidationCode(model.PhoneNumber);
if (sendSmsResult) return RedirectToAction("ValidationCode");
}
}
return View(model);
}
//---Remote Action----
public async Task<IActionResult> ValidateUsername(string username)
{
var user = await _userManager.FindByNameAsync(username);
if (user != null) return Json(data: Messages.Username_Already_Taken);
return Json(data: true);
}
在 Razor 页面中,我有:
<form method="post" id="signup" asp-action="Index" asp-controller="SignUp">
<div class="text-right mt-3">
@Html.LabelFor(r => r.Username)
<input type="text" id="username" asp-for="Username" class="form-control form-log-in">
@Html.ValidationMessageFor(r => r.Username, "", new {@class = "error"})
</div>
<div class="form-group">
<button type="submit" class="btn see-more-btn px-3 py-1 text-dark text-center text-decoration-none w-100 d-block">ثبت نام</button>
</div>
</form>
远程验证效果很好,并且在库被评论时提交。
解决方案
推荐阅读
- c# - 优化 LINQ 查询
- java - 是否可以像在 Java 中一样访问 C++ 中的静态成员类?
- reactjs - 如何在同一页面上同步两个分页组件
- twilio - Twilio Studio 拨出电话
- elasticsearch - 在 Elasticsearch 中克隆和重新索引索引有什么区别?
- javascript - 在 React 中 useEffect 在值从其他组件更改后不会更新
- javascript - 从 node-red 发送数据到本地网页
- git - 过滤 git repo 以从历史记录中删除大文件。工作副本成功,但推送后未显示在远程仓库中
- jquery - 从 jquery 在views.py 中起作用的URL
- sql - 如何在没有 RawSQL 的情况下在 Django 中创建和访问正则表达式捕获组?