Невозможно выполнить действие в другом контроллере с помощью вызова AJAX.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно выполнить действие в другом контроллере с помощью вызова AJAX.

Сообщение Anonymous »

Я пытаюсь выполнить в своем приложении MVC код, который в моем веб-приложении пользователь при входе в систему должен будет сначала подтвердить свой номер телефона, прежде чем он сможет щелкнуть любое меню в моем приложении. Я использую функциональность ErrorController в MVC, чтобы пользователь практически ничего не мог делать в приложении. Я пытаюсь выполнить действие, которое отправляет им текстовое сообщение 2FA с кодом, а затем отображает модальное всплывающее окно и возвращает PartialView, где они могут ввести код, чтобы затем продолжить работу с приложением.
В моем контроллере ошибок я сначала попробовал метод RedirectToAction, чтобы перейти к действию VerifyPhoneNumber, но где-то прочитал, что его нельзя использовать в PartialViews. Итак, я пытаюсь использовать, как показано ниже, вызов действия AJAX. Однако, похоже, действие VerifyPhoneNumber не выполняется, и я даже установил точку останова. Что я делаю неправильно или мне нужно сделать эту логику по-другому? Спасибо.
Код действия, вызывающего главную страницу:
public ActionResult UnverifiedPhoneNumber()
{
return View();
}

Главная страница, на которой я пытаюсь выполнить AJAX-вызов действия VerifyPhoneNumber для отображения всплывающего окна, чтобы этот пользователь мог ввести свой код 2FA:
@model HandleErrorInfo
@{
const string Title = "Verify Phone Number";
ViewBag.Title = Title;
}

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);
}
});
});

@Title
Before you can continue to use the site, verify your phone number

Код действия на другом контроллере, который я пытаюсь выполнить, отправляет SMS-код 2FA и открывает всплывающее окно:
[Display(Name = "Verify Phone Number", Description = "Verify Phone Number")]
public async Task VerifyPhoneNumber()
{
....Send SMS code to user's phone number .....
Context.Log("Opened Verify Phone Number modal");
return PartialView("_VerifyPhoneNumber", new VerifyPhoneNumberModel());
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -ajax-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»