我正在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相关问答推荐

有人可以解释一下这个Eager 加载示例吗?

无法为媒体类型application/x-www-form-urlencoded生成样本

如何注册路由区域

如何从 dll 文件中提取类的源代码?

创建一个供 ASP.NET 应用程序中的所有线程使用的静态 Regex 对象是否有效?

ASP.NET 平台是否有与 Heroku 等价的工具?

ASP.NET 在更新面板更新时显示正在加载...消息

防止 asp.net Web 表单中的跨站点请求伪造 (csrf) 攻击

来自 IP 地址的经度和纬度值

哪些行为驱动开发 (BDD) 工具/框架可用于 Microsoft Stack?

如何解决 Kerberos 双跳问题?

ASP.NET 中的 <%# Bind("") %> 和 <%# Eval("") %> 有什么区别?

尽管安装了 AspNetCoreModule,但在 IIS 中运行 ASP.NET Core 应用程序时出现 0x8007000d 错误 500.19

如何从 Asp.net Mvc-3 发送邮箱?

在 asp.net 中为动态 PDF 指定文件名

在 ASP.NET 4.5 WebForms 中通过 bundle.config 与 BundleConfig.cs Bundle 资源

oAuth ASP.NET 成员资格提供程序

VS 2010 中缺少 App_Code 文件夹

我可以在加载事件时从 C# 的 div 标记中动态添加 HTML 吗?

禁用文本框的模型绑定