gpt4 book ai didi

asp.net-mvc - 如何管理_Layout.cshtml中的逻辑

转载 作者:行者123 更新时间:2023-12-04 05:15:31 29 4
gpt4 key购买 nike

我目前正在使用一个 mvc 站点,在那里我有一个相当广泛的主布局页面。它依赖于来自数据库的数据,而数据库中的数据又包括固有逻辑,如布局中包含的内容等。

我的大部分 Controller 操作都在此布局中呈现。我不确定如何工作。习惯于 Web 表单中的母版页,所有逻辑都驻留在母版页中。我有几种机制来实现通用布局逻辑,但正在寻找实现这一点的最佳实践方法。

选项是:

  • 在所有 Controller 操作中复制逻辑(不是真正的选项)
  • 将逻辑提取到另一个类中并从 Controller 操作中调用它
  • 所有 Controller 都继承自一个基本 Controller ,该 Controller 覆盖 OnActionExecuting 方法,我们使用它来执行逻辑并在 TempData
  • 中返回必要的数据。
  • 在 cshtml 中使用“RenderAction”来调用必要的 Controller Action 并将布局提取到较小的局部 View 中

  • 对我开放的任何其他选择或建议?

    最佳答案

    如果我理解正确,我会使用 Action 部分

    @Html.Action("{ActionName}", "{Controller}", new { roleName= "Admin" })

    Action Partials 调用类型的专用 Controller 操作方法
       [ChildActionOnly]
    public ActionResult _TopNav(string roleName)

    通过这种方式,您可以设计将在整个应用程序中传播而无需复制的重复逻辑。

    更好的是,如果您的 _Layout 处理基于权限的链接生成,您可以传递角色 ID 并控制最终用户看到的内容以及他们的导航按钮指向的内容。

    关于asp.net-mvc - 如何管理_Layout.cshtml中的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329338/

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