如何从视图组件处理表单帖子(Razor Core 2)
本周末,在视图组件方面有很多困难 我尝试添加一个dropdownlist,它会在更改后自动回发。此下拉列表位于视图组件上 我有两个问题:如何从视图组件处理表单帖子(Razor Core 2),razor,asp.net-core-2.0,asp.net-core-viewcomponent,Razor,Asp.net Core 2.0,Asp.net Core Viewcomponent,本周末,在视图组件方面有很多困难 我尝试添加一个dropdownlist,它会在更改后自动回发。此下拉列表位于视图组件上 我有两个问题: 我在文章之后没有得到asp页面处理程序,它是否像我在表单标签上实现的那样工作 Post在包含视图的页面上调用方法public void OnPost 组成部分。我认为最好是在这个问题上有一个方法 像OnChangeProject一样查看组件 我的视图(视图组件)的代码: @Html.AntiForgeryToken() @DropDownList(“id”,
@Html.AntiForgeryToken()
@DropDownList(“id”,新的选择列表(模型,“id”,“id”),新的{onchange=“this.form.submit()”})
提前谢谢 我也遇到过同样的问题,我解决问题的方法已经在你的问题中得到了回答 表单调用是在嵌入视图组件的页面上进行的。我认为甚至不可能在视图组件中使用
asp页面处理程序
调用处理程序,因为这是Razor Pages标记帮助程序
我的工作方式就是将页面处理程序方法放在嵌入视图组件的PageModel
上。在您的情况下,您只需在Razor页面上实现此处理程序:
public IActionResult OnPostChangeProject()
{
// ... do Something
}
我不知道如何在视图组件中触发控制器方法。可能创建一个新的控制器类,并在表单标记中使用
asp Controller
和asp action
路由到该类。可以通过使用ViewComponent(Name=“myviewcomponent”)装饰控制器来创建组合(控制器/ViewComponent)
然后像往常一样创建invokeasync,但由于控制器不是从ViewComponent继承的,因此返回的结果将是ViewComponent结果之一(ViewComponentResult,et)
然后,viewcomponent中的表单可以有一个带有asp控制器/操作标记帮助器的按钮,这些帮助器以控制器/操作为目标
public IActionResult OnPostChangeProject()
{
// ... do Something
}