我正在尝试在我的 MVC 应用程序中执行代码,在我的 Web 应用程序中,用户在登录时必须先验证他们的电话号码,然后才能单击我的应用程序中的任何菜单。 我在 MVC 中使用 ErrorController 功能,这样它就可以阻止用户在应用程序中执行任何操作。 我正在尝试执行一个操作,向他们发送带有代码的 2FA 文本消息,然后显示模式弹出窗口并返回 PartialView,他们可以在其中输入代码,以便他们随后可以继续应用程序。
在我的错误控制器中,我首先尝试使用 RedirectToAction 方法来访问VerifyPhoneNumber 操作,但在某处读到不能在 PartialViews 上使用它。 所以我尝试使用如下所示的 AJAX 调用操作。 但是,它似乎没有执行VerifyPhoneNumber操作,我什至设置了一个断点。 我做错了什么或者我需要以另一种方式执行此逻辑? 谢谢。
调用主页的Action代码:
public ActionResult UnverifiedPhoneNumber()
{
return View();
}
我尝试对VerifyPhoneNumber操作进行AJAX调用以向该用户显示弹出窗口的主页可以输入他们的2FA代码:
@model HandleErrorInfo
@{
const string Title = "Verify Phone Number";
ViewBag.Title = Title;
}
<script>
alert('hello');
$(document).ready(function () {
$.ajax({
url: "/Account/VerifyPhoneNumber",
type: "POST",
dataType: "html",
success: function(data) {
// Handle the response data here
console.log(data);
},
error: function(error) {
// Handle errors here
console.error(error);
}
});
});
</script>
<h1 class="text-danger">@Title</h1>
<h2 class="text-danger">Before you can continue to use the site, verify your phone number</h2>
我尝试执行的另一个控制器中的操作代码发送 2FA SMS 代码并执行弹出窗口:
[Display(Name = "Verify Phone Number", Description = "Verify Phone Number")]
public async Task<PartialViewResult> VerifyPhoneNumber()
{
....Send SMS code to user's phone number .....
Context.Log("Opened Verify Phone Number modal");
return PartialView("_VerifyPhoneNumber", new VerifyPhoneNumberModel());
}
你可以尝试在你的ajax中将异步设置为假并尝试
<script>
alert('hello');
$(document).ready(function () {
$.ajax({
url: "/Account/VerifyPhoneNumber",
async: false,
type: "POST",
dataType: "html",