Я отправляю регистрационную информацию с вызова JQuery AJAX на контроллер MVC 4:
$.post(url, data, function (response) {
if (response=='InvalidLogin') {
//show invalid login
}
else if (response == 'Error') {
//show error
}
else {
//redirecting to main page from here for the time being.
window.location.replace("http://localhost:1378/Dashboard/Index");
}
});
Если вход успешно завершен, я хочу перенаправить пользователя с серверной стороны на соответствующую страницу по типу пользователя. Если сбой входа в систему, строка возвращается пользователю:
[HttpPost]
public ActionResult Index(LoginModel loginData)
{
if (login fails)
{
return Json("InvalidLogin", JsonRequestBehavior.AllowGet);
}
else
{
// I want to redirect to another controller, view, or action depending
// on user type.
}
}
Но есть проблемы:
-
Если этот метод возвращает "ActionResult", я получаю сообщение об ошибке
not all code paths return a value
. -
Если я использую 'void', я ничего не могу вернуть.
-
Даже если я использую "void" без возврата, я не могу перенаправить на другой контроллер или просмотр из-за асинхронного вызова вызовов jQuery AJAX.
Существуют ли какие-либо методы для обработки таких сценариев?