Не удается перенаправить отправку на действие
У меня есть следующие действия и я просматриваю следующие документы.
[HttpPost("validate")]
public IActionResult Validate([FromQuery] string user, string pass)
{ ... }
[HttpGet("login")]
public IActionResult LogIn([FromQuery] string returnUrl)
{
...
return View(model);
}
@using Microsoft.AspNetCore.Mvc.TagHelpers;
@model Dictionary<string, string>
<form asp-controller="account" asp-action="validate" method="post">
<input asp-for="@Model["user"]" placeholder="Username" />
<input asp-for="@Model["pass"]" placeholder="Password" />
<button type="submit">Go!</button>
</form>
После нажатия на кнопку, я возвращаюсь к тому же действию (то есть, входу в систему) инстеда указанного (т.е. проверки). Кажется, что единственное, что я контролирую в форме, это метод. Я добавил оператор using для доступа к библиотеке TagHelpers, но, похоже, это не делает различий.
Что я мог пропустить?
1 ответ
Окончательное исполнение (Ctrl + U в Chrome или F12 и проверка элементов) производит
<form asp-controller="account" asp-action="validate" method="post">...<button type="submit">Check the credentials</button> </form>
, Я ожидалasp-xxx
атрибуты для преобразования. Я ошибся?
Нет вы правы Эти вспомогательные атрибуты тегов должны были быть преобразованы в один action
атрибут, который содержит целевой URL для вашего Validate
действие.
Поскольку атрибуты не были преобразованы, это означает, что помощники тегов не запускались. Это, скорее всего, вызвано отсутствием @addTagHelper
директивы.
Вы должны иметь следующую строку либо в вашем представлении, либо в _ViewImports.cshtml
файл (где строка должна быть по умолчанию):
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Импорт пространства имен с @using
директива не нужна.