Могу ли я отправить компонент просмотра MVC6?
Могу ли я как-нибудь отправить форму внутри компонента вида? Я знаю, что это невозможно для частичных просмотров. Компонент вида имеет свой собственный контроллер, поэтому цель этого вопроса заключается в том, могу ли я использовать этот контроллер для отправки формы, представленной представлением компонента.
Это не упоминается в документации по компонентам вида MVC6. Так что это не возможно, наверное, но может я и ошибаюсь:)
1 ответ
Подобно частичным представлениям, компоненты представления могут также представить вам некоторый HTML. Таким образом, пока представление, представленное вашим компонентом представления, содержит действительный тег формы, да, вы можете отправлять формы.
@model YourNamespace.LoginVM
<form asp-controller="Home" asp-action="Login">
<input asp-for="Name" />
<input asp-for="Password" />
<input type="submit" />
</form>
Вы должны убедиться, что у вас есть метод действия входа в HomeController
[HttpPost]
public ActionResult Login(LoginVM model)
{
//do something :)
}
Важно помнить, что вы не должны вызывать этот компонент представления внутри другого тега формы. Общее правило: вы не должны быть вложенными формами.
<form id="main-form" asp-controller="main" asp-action="submit" method="post">
<input asp-for="LocationName" />
<input type="submit" />
</form>
@Component.Invoke("Login")