如何在帖子中从 ViewComponent 获取对象?

Posted

技术标签:

【中文标题】如何在帖子中从 ViewComponent 获取对象?【英文标题】:How to get object from ViewComponent on post? 【发布时间】:2022-01-13 20:54:50 【问题描述】:

在我的 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 视图组件中,我有一个带有帖子的表单:

<form method="post">
// some stuff
</form>

到目前为止,我能够成功显示数据并获得帖子。我一直在寻找在点击时将对象从 ViewComponents 传递到 Page Models 的方法,但没有成功。这可以通过 ViewComponents 来实现,还是我需要使用部分视图之类的东西?

谢谢!

【问题讨论】:

【参考方案1】:

我正在寻找在点击时将对象从 ViewComponents 传递到 Page Models 的方法。

你可以尝试使用asp-pageasp-handler来设置页面和handler,这样当点击按钮时,表单数据就会传递给页面的handler。

 <form method="post" asp-page="xxpage" asp-handler="xxhandler">
// some stuff
    <input type="submit" value="submit"/>
</form>

【讨论】:

抱歉耽搁了。谢谢它的工作!

以上是关于如何在帖子中从 ViewComponent 获取对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 ViewComponent 视图是不是存在?

如何在sql中从给定的月份和年份获取月份的第一天和最后一天

.NET CORE 从控制器调用 ViewComponent

将 Viewcomponent 与 Rspec 集成

如何在 Asp.net Core 3.1 中使用 Ajax 刷新或重新加载 ViewComponent?

对如何在 Blazor App 中从 B2C 获取访问令牌感到困惑