【问题标题】:Asp.net core 2.1 - Layout controllerAsp.net core 2.1 - 布局控制器
【发布时间】:2019-06-21 15:22:03
【问题描述】:

我正在学习 asp.net core 2.1。 我用菜单表(ID、名称、动作、控制器)创建了一个数据库 我想将数据从数据库传递到菜单。 为此,我需要一个控制器来传递数据以查看。如何将这些数据传递给_Layout.cshtml?孩子需要它(部分视图“菜单”)。

在模板 mvc 中没有用于布局的控制器...

【问题讨论】:

  • 您可以使用帮助函数来调用控制器,例如@Html.Action("method", "controller")

标签: asp.net-mvc database model-view-controller menu


【解决方案1】:

在 _layout.cshtml 中你可以简单地有一个

@Html.Action("Method", "Controller")

在你可以用来调用另一个控制器的主体中。理想情况下,如果这是一个导航栏等,我会从此方法返回一个 partialView。

【讨论】:

  • 由于某种原因不能在 _layout.cshtml 中使用它,但我会很高兴它可以工作 ;) IHtmlHelper' 不包含“Action”的定义和最佳扩展方法重载 'UrlHelperExtensions.Action(IUrlHelper, string, object)' 需要 'IUrlHelper' [project] 类型的接收器
【解决方案2】:

我设法通过使用 ViewComponent 来做到这一点

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components?view=aspnetcore-2.1

@Html.Action("Method", "Controller") 在 Asp.Net CORE 2.1 中不起作用

【讨论】:

    【解决方案3】:

    在Core 2.1中你需要使用

    <partial name="PartialViewName"/> 而不是@Html.Action("PartialViewName","ControllerName")

    https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/built-in/partial-tag-helper?view=aspnetcore-2.2 看这里。

    【讨论】:

      猜你喜欢
      • 2018-12-22
      • 2018-09-07
      • 2019-03-09
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2019-05-08
      • 2019-02-24
      相关资源
      最近更新 更多