Я получаю это неожиданное поведение от ядра asp.net, которое я начинаю изучать.
У меня есть форма ниже в моем представлении:
<form asp-controller="Account" asp-action="Login" method="post">
<button type="submit">LOGIN</button>
</form>
Да, я 'Я использую тэг помощники здесь. А вот контроллер:
public class AccountController : Controller
{
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl)
{
if (string.IsNullOrEmpty(returnUrl) || !Url.IsLocalUrl(returnUrl))
return RedirectToAction("index", "home");
else
return LocalRedirect(returnUrl);
}
}
Теперь, насколько я понимаю, returnUrl должен автоматически получить значение строки запроса, если оно есть в строке запроса. Но с такой настройкой этого не происходит. После большого количества царапин на голове я нашел в Интернете решение, которое, на мой взгляд, изменилось на следующее:
<form method="post">
<button type="submit">LOGIN</button>
</form>
, и тогда оно начинает работать. Но почему существует такое поведение, что вызывает это, почему помощники тегов формы не позволяют привязать строку запроса для этой формы метода сообщения ???