【发布时间】:2015-12-04 09:32:57
【问题描述】:
我可以在视图组件中提交表单吗?我知道局部视图是不可能的。视图组件有自己的控制器,所以这个问题的目标是我是否可以使用这个控制器来提交组件视图呈现的表单。
MVC6 view components docs 中没有提到。 所以这是不可能的,我想,但也许我错了:)
【问题讨论】:
标签: asp.net-core asp.net-core-viewcomponent
我可以在视图组件中提交表单吗?我知道局部视图是不可能的。视图组件有自己的控制器,所以这个问题的目标是我是否可以使用这个控制器来提交组件视图呈现的表单。
MVC6 view components docs 中没有提到。 所以这是不可能的,我想,但也许我错了:)
【问题讨论】:
标签: asp.net-core asp.net-core-viewcomponent
类似于局部视图,视图组件也可以为您呈现一些 HTML。所以只要你的视图组件渲染的视图里面有一个有效的表单标签,是的,你可以提交表单。
@model YourNamespace.LoginVM
<form asp-controller="Home" asp-action="Login">
<input asp-for="Name" />
<input asp-for="Password" />
<input type="submit" />
</form>
你需要确保你在 HomeController 中有一个 Login 动作方法
[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")
【讨论】: