gpt4 book ai didi

asp.net-mvc - ASP.Net MVC Controller 命名空间数组

转载 作者:行者123 更新时间:2023-12-04 04:01:35 25 4
gpt4 key购买 nike

我注意到MapRoute扩展包含一个重载,该重载接受一个名为namespaces的string []参数。我阅读了Google为其提供的内容,据推测,这是为了帮助框架在原本不会出现的地方找到 Controller 。

我做了一些尖刺,然后尝试将 Controller 放在奇怪的位置。我在Scripts文件夹中放了一个。我什至在一个具有独立根 namespace 的独立程序集中构建了一个。

无需在命名空间参数中添加任何内容,一切都可以正常工作。如果仅将 namespace 之一放在 namespace 参数中,它仍然会找到我的所有 Controller 。我以为可能会使用该数组消除名称相似的 Controller 之间的歧义,但这也没有发生。 MyProj.Controllers中的HomeController和SomeOtherName.Stuff中的HomeController仍会冲突。

所以我的问题是,该参数是否已弃用?还是以某种我尚未发现的方式使用它?

最佳答案

好的,因此,在进一步测试之后,我发现它确实不是过滤器,但还可以。即使您错了一部分,我也给了您“答复”功劳。

因此,毕竟它确实像我认为的那样起作用,也就是说它消除了歧义。基本上,逻辑流程是这样的:

  • 在_cache中寻找与 namespace 数组中的一个 namespace 匹配的 namespace
  • (如果找到),寻找名称正确的 Controller
  • -如果找到,则将其返回
  • -如果未找到,则在通常看起来是
  • 的其他地方返回搜索
  • (如果未找到),到处搜索lese

  • 简而言之,我认为 namespace 数组可以消除歧义是正确的。在这方面我的第一个测试失败的原因是,它只能完美匹配,并且我犯了一个错误,即仅使用程序集的根n/s(换句话说,使用MyRoot而不是MyRoot.Controllers)。

    那么,此 namespace 所允许的是在两个不同的 namespace 中都有一个HomeController,并根据url或params对它们进行不同的匹配。

    关于asp.net-mvc - ASP.Net MVC Controller 命名空间数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/721700/

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