我正在try 切换到ASP.NET内核从我的小ASP.NETMVC4应用程序.

在我的MVC 4应用程序中,我有一个使用RenderSection的布局文件:

@RenderSection("xyz", required: false)

然后,在我的索引文件中,我有:

@section xyz{
        @{Html.RenderAction("abc");}
    }

所以,我从索引中调用控制器操作方法abc().方法abc()传递一个模型对象并返回该模型的局部视图.

现在,在ASP.NET内核,我没有RenderAction()方法.

我的问题是:如何从索引文件调用控制器操作方法?还有没有其他的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"下创建了一个视图,作为Views/Home/Components/abc/Default.cshtml

需要注意的是,视图名称是默认的.cshtml,这就是它的工作原理.如果有更好的解决方案,请告诉我.

感谢您为我指明ViewComponent的方向.

Asp.net相关问答推荐

AJAX返回未定义、失败

HttpRuntime.Cache[] 与 Application[]

如何在asp.net中单击按钮的新选项卡中打开页面?

如何使多行的 TextBox 控件无法调整大小?

如何判断一个IP地址是否是私有的?

如何从网页 (asp.net) 启动 EXE

多个 DataContext 类是否合适?

ASP.NET MVC 中的 ASP.NET AJAX 与 jQuery

如何检测 ASP.net 应用程序中的 SqlServer 连接泄漏?

如何确定 web.config 中的编译 debug="true"

使用 Visual Studio 2012 恢复删除的文件

如何将 ASP.NET MVC5 身份验证添加到现有数据库

ASP.NET 日期时间 Select 器

如何在 asp net core api 中使用 Created(或 CreatedAtAction / CreatedAtRoute)

.NET - c# - 需要跨分区查询,但在 DocumentDB 数据访问上禁用了问题

由 UpdatePanel 内 GridView 内的 LinkBut​​ton 触发的完整回发

导航到本地 IIS Express 时,Chrome 会返回错误请求 - 请求太长

避免将重复元素添加到列表 C#

目录与目录信息

在没有等待 #2 的情况下调用异步方法