asp.net-core - 表单在 chrome 中提交,但不在任何其他浏览器上
问题描述
我正在使用 Visual Studio 发布选项推送我的代码。
我面临的问题是当我将代码发布到 Azure Web App 并在我的主站点切换它之后。
到那时一切正常,但在交换注册登录后没有任何效果。它可能看起来很奇怪,但是当我们使用相同的注册和登录 Chrome 时它工作正常,但是当我尝试在其他浏览器中复制相同的内容时它不会工作。它没有达到 post 的方法,服务器返回 500 作为响应。
<form asp-controller="Account" asp-action="RegisterPost" method="post" class="form-horizontal" role="form" id="signup-form" data-bind="submit: submitForm">
<div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
<div class="form-group">
<div class="col-md-4 register-input">
<input asp-for="FirstName" class="form-control" placeholder="First Name" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<div class="col-md-4 register-input">
<input asp-for="MiddleName" class="form-control" placeholder="Middle Name" />
<span asp-validation-for="MiddleName" class="text-danger"></span>
</div>
<div class="col-md-4 register-input">
<input asp-for="LastName" class="form-control" placeholder="Last Name" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-6 register-input">
<input asp-for="Email" class="form-control" placeholder="Email" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="col-md-6 register-input"></div>
</div>
<div class="form-group">
<div class="col-md-6 register-input">
<input asp-for="Password" class="form-control" placeholder="Password" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="col-md-6 register-input">
<input asp-for="ConfirmPassword" class="form-control" placeholder="Confirm Password" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
<div class="col-md-12 register-help">
<span class="help-text">at least 8 characters, must include a number</span>
</div>
</div>
<div class="form-group">
<div class="col-sm-12 center-block">
<button type="submit" class="btn btn-action">Signup</button>
</div>
</div>
</form>
我用于提交表单的脚本:
self.submitForm = function () {
if ($("#signup-form").valid()) {
return true;
}
return false;
};
控制器代码:
[HttpPost]
[AllowAnonymous]
[Route("/register")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> RegisterPost(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
await _userManager.AddToRoleAsync(user, RolesEnum.Candidate.ToString());
await _signInManager.SignInAsync(user, isPersistent: false);
await _context.SaveChangesAsync(model.Email);
return RedirectToAction(nameof(AccountController.VerifyPhone));
}
if (result.Errors != null && result.Errors.Any(e => e.Code == "DuplicateUserName"))
{
return RedirectToAction("Register", new { err = "exists" });
}
}
return View("Register", model);
}
解决方案
推荐阅读
- php - PHP WooCommerce - 如何正确设置用户角色的值?
- django - 如何在 Django 模型的另一个模型中根据角色显示用户?
- java - 根据特定字符序列拆分字符串
- javascript - Javascript If else 语句仅返回 'else'
- php - 错误方法付款无效?客户 ID =?Magento 2
- laravel - Laravel 中的 CoreUI vue.js 模板无法正常工作
- javascript - Kendo Grid ASP.Net 更新错误的行
- android - 您如何获得 Android 中最近的应用程序列表?
- javascript - 如何循环思维图并创建特定对象?使用 Javascript
- python - 给定起点的矩阵中的最大和路径