У меня есть контроллер с именами LoginController
и HomeController
. Внутри LoginController
у меня есть LoginAsync
функция, которая выглядит следующим образом:
[HttpPost]
public async Task<ActionResult> LoginAsync(string username, string password)
{
...
var apiResponse = JsonConvert.DeserializeObject<APIResponse>(result);
if (!apiResponse.IsSuccessful)
{
return Content(apiResponse.Message);
}
...
return RedirectToAction("Index", "Home", new { area = "Index" });
}
И вызывается через AJAX в функции LoginAsync
в LoginController
:
<script type="text/javascript">
$(document).ready(function () {
$('#Login').click(function () {
$.ajax({
url: "Login/LoginAsync",
type: "POST",
data: { username: document.getElementById('txtUsername').value, password: document.getElementById('txtPassword').value },
async: true,
success: function (data) {
alert(data);
//window.location.href = "Home";
},
});
});
});
</script>
По какой-то причине строчка return RedirectToAction(...)
срабатывает, но страница не перенаправляет на домашнюю страницу, как я и думал. Что меня действительно смущает, так это строка Ajax alert(data);
, показывающая HTML-контент для домашней страницы - страницы, на которую я хочу перенаправить. Поэтому после того, как я нажму кнопку, чтобы запустить Ajax, вместо перехода на домашнюю страницу, он просто выскакивает HTML-код домашней страницы и остается на странице входа в систему.
Как сделать так, чтобы LoginAysnc
перенаправлял в HomeController / Index view?