如何从 post 上的 ViewComponent 获取对象?
How to get object from ViewComponent on post?
在我的 razor 页面项目中,我使用视图组件作为列表模板,就像我的 html:
@foreach (var listingItem in Model.ListingItems)
{
@await Component.InvokeAsync("Listing", new { listingItem = listingItem })
}
传递 ListingItem 对象以与模型一起显示的位置:
public class ListingViewComponent : ViewComponent
{
public ListingItem ListingItem { get; private set; }
public IViewComponentResult Invoke(ListingItem listingItem)
{
return View(this);
}
}
在这个 Listing
视图组件中,我有一个带有 post:
的表单
<form method="post">
// some stuff
</form>
到目前为止,我能够成功显示数据并获得post。我一直在寻找在点击时将对象从 ViewComponents 传递到页面模型的方法,但没有成功。这可以通过 ViewComponents 实现,还是我需要使用部分视图之类的东西?
谢谢!
I've search for ways to pass down object from ViewComponents to Page Models on click.
您可以尝试使用asp-page
和asp-handler
来设置页面和处理程序,这样当点击按钮时,表单数据将传递给页面的处理程序。
<form method="post" asp-page="xxpage" asp-handler="xxhandler">
// some stuff
<input type="submit" value="submit"/>
</form>
在我的 razor 页面项目中,我使用视图组件作为列表模板,就像我的 html:
@foreach (var listingItem in Model.ListingItems)
{
@await Component.InvokeAsync("Listing", new { listingItem = listingItem })
}
传递 ListingItem 对象以与模型一起显示的位置:
public class ListingViewComponent : ViewComponent
{
public ListingItem ListingItem { get; private set; }
public IViewComponentResult Invoke(ListingItem listingItem)
{
return View(this);
}
}
在这个 Listing
视图组件中,我有一个带有 post:
<form method="post">
// some stuff
</form>
到目前为止,我能够成功显示数据并获得post。我一直在寻找在点击时将对象从 ViewComponents 传递到页面模型的方法,但没有成功。这可以通过 ViewComponents 实现,还是我需要使用部分视图之类的东西?
谢谢!
I've search for ways to pass down object from ViewComponents to Page Models on click.
您可以尝试使用asp-page
和asp-handler
来设置页面和处理程序,这样当点击按钮时,表单数据将传递给页面的处理程序。
<form method="post" asp-page="xxpage" asp-handler="xxhandler">
// some stuff
<input type="submit" value="submit"/>
</form>