gpt4 book ai didi

asp.net - 与ASP.NET Core中的Html.RenderAction等效

转载 作者:行者123 更新时间:2023-12-03 12:11:05 38 4
gpt4 key购买 nike

我试图从我的小型ASP.NET MVC 4应用程序切换到ASP.NET Core。

在我的MVC 4应用程序中,我有一个使用RenderSection的Layout文件,如下所示:

@RenderSection("xyz", required: false)

然后,在我的索引文件中,我有:
@section xyz{
@{Html.RenderAction("abc");}
}

因此,我正在从索引中调用 Controller 操作方法abc()。方法abc()传递模型对象,并返回该模型的局部 View 。
我不能使用RenderPartial,因为它需要传递模型。

现在,在ASP.NET Core中,我没有RenderAction()方法。

我的问题是:如何从索引文件中调用 Controller 操作方法?是否还有其他HTML帮助器(尽管我看不到)?

最佳答案

我终于能够使用ViewComponent做到这一点。因此,我没有使用RenderAction(),而是:

@section xyz{
@await Component.InvokeAsync("abc")
}

其中abc是abcViewComponent的类。 ViewComponent看起来像:
public class abcViewComponent : ViewComponent
{
private DbContextOptions<MyContext> db = new DbContextOptions<MyContext>();
public async Task<IViewComponentResult> InvokeAsync()
{
MyContext context = new MyContext(db);
IEnumerable<tableRowClass> mc = await context.tableRows.ToListAsync();
return View(mc);
}
}

然后,我在新文件夹“abc”下创建了一个 View ,作为Views / Home / Components / abc / Default.cshtml

要注意的是, View 名称是Default.cshtml,这就是它的工作方式。如果有人有更好的解决方案,请告诉我。

感谢您将我指向ViewComponent的方向。

关于asp.net - 与ASP.NET Core中的Html.RenderAction等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41353874/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com