Не удается перенаправить отправку на действие - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть следующие действия, и я просматриваю следующие документы: Документы .

[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>

При нажатии на кнопку я возвращаюсь к тому же действию (т.е. Авторизуйтесь ) в инстеде указанного (т.е. Подтвердите ).Кажется, что единственное, что я контролирую в форме, это метод.Я добавил , используя оператор для доступа к библиотеке TagHelpers , но, похоже, это не имеет значения для джека.

Что я могупропустили?

1 Ответ

0 голосов
/ 12 декабря 2018

Окончательное отображение (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.

...