gpt4 book ai didi

asp.net-mvc - 如何获取当前执行区域?

转载 作者:行者123 更新时间:2023-12-04 13:10:08 24 4
gpt4 key购买 nike

我有一个由 [Project].Controllers 中的 Controller 和不同区域的 Controller 使用的类。如何确定 Controller 的位置? (我想我可以查看 HttpContext.Current.Request 的属性 - 但我正在寻找一种“正确的”MVC 方式)。谢谢你。

那是:

[Project].Helpers // called by:
[Project].Controllers
[Project].Areas.[Area].Controllers
// how could I determine the caller from [Project].Helpers?

最佳答案

我们故意没有公开从 MVC 请求中获取当前区域名称的方法,因为“区域”只是路由的一个属性。它对于其他用途是不可靠的。特别是,如果您希望您的 Controller 具有一些可由助手使用的属性(想想抽象术语,而不是 System.Attribute 类),那么这些属性必须在 Controller 本身上找到,而不是在区域上。

作为一个实际示例,如果您希望某些逻辑(如 Action 过滤器)在特定区域中的任何 Controller 之前运行,您可以 必须将 Action 过滤器与这些 Controller 直接关联。执行此操作的最简单方法是将某些 MyAreaBaseController 与该过滤器相关联,然后让您在逻辑上希望与该区域关联的每个 Controller 对该类型进行子类化。任何其他用法,例如查看 RouteData.DataTokens["area"] 以做出决定的全局过滤器,都是不受支持的并且存在潜在危险。

如果你真的,真的需要获取当前区域名称,你可以使用 RouteData.DataTokens["area"]找到它。

关于asp.net-mvc - 如何获取当前执行区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418340/

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