【问题标题】:Directory in MVC3 ProjectMVC3 项目中的目录
【发布时间】:2012-09-17 15:55:52
【问题描述】:

我目前正在处理的 MVC3 站点有一个“工具”区域。我在需要在虚拟目录中运行的站点上集成的工具之一。在 /Tools 文件夹下设置虚拟目录对应用程序本身来说效果很好,但对于导航到 /Tools/,我得到“不允许目录列表”。如何告诉 IIS 让 MVC 路由处理此 URL?

我们将在生产中使用 IIS6,因此使用它很重要。

提前致谢。

编辑:为清楚起见,设置如下:

  • /Tools/RoutedTool1
  • /Tools/ToolInVirtualDirectory
  • /Tools/RoutedTool2
  • /工具/

路由工具的路由工作正常,但由于我必须在根目录下创建一个目录来设置“ToolInVirtualDirectory”,IIS 正在劫持“/Tools/”请求并尝试将其发送到目录,忽略路线。

【问题讨论】:

  • 您是在创建一个虚拟目录,还是将其作为一个应用程序?
  • 到目前为止只是创建了一个虚拟目录,但如果出于技术原因将其切换到应用程序,我会全力以赴。据我所知,问题与虚拟目录无关——仅添加 Tools 目录会弄乱我的路线。
  • 这很奇怪,应该是相反的。该路由应覆盖虚拟目录。你有任何 url 重写规则吗?
  • 不。是否有一个 IIS 设置来指示首先受到什么影响?

标签: c# asp.net-mvc-3 routing


【解决方案1】:

你应该在 Global.asax.cs 中设置routes.RouteExistingFiles = true

请记住,由于此属性在全局级别播放,因此在设置此属性之前,您必须忽略 css 文件和您不需要由路由基础结构处理的其他内容。更多想法请参考post

【讨论】:

    【解决方案2】:

    在 Global.asax 的 RegisterRoutes 部分中,添加路由系统忽略的忽略路由。配置中应该已经有 .axd 的示例。

    【讨论】:

    • 我对问题进行了一些澄清 - 忽略路线似乎不是我的问题。谢谢。
    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多