Asp.net mvc 2 ASP.NET MVC是否在根路径中搜索与控制器名相同的文件夹?

Asp.net mvc 2 ASP.NET MVC是否在根路径中搜索与控制器名相同的文件夹?,asp.net-mvc-2,Asp.net Mvc 2,我可能在ASP.NETMVC中遇到了一个bug,但我不确定(在寻找解释之后)我是否在这里 ASP.NETMVC重于“约定重于配置”,这很好,如果他们坚持的话 我创建了一个名为“ChatController”的控制器,并在项目的根路径中创建了一个名为“Chat”的文件夹,以保存与聊天相关的ViewModel 然后我在“视图”文件夹中创建了一个名为“Chat”的文件夹,因为我们都知道,ASP.NET MVC将在“Views/[ControllerName]”文件夹和“Views/[Shared]”文

我可能在ASP.NETMVC中遇到了一个bug,但我不确定(在寻找解释之后)我是否在这里

ASP.NETMVC重于“约定重于配置”,这很好,如果他们坚持的话

我创建了一个名为“ChatController”的控制器,并在项目的根路径中创建了一个名为“Chat”的文件夹,以保存与聊天相关的ViewModel

然后我在“视图”文件夹中创建了一个名为“Chat”的文件夹,因为我们都知道,ASP.NET MVC将在“Views/[ControllerName]”文件夹和“Views/[Shared]”文件夹中查找匹配的视图

但每次我试图点击我的视图,我都会得到“404”。我想。见鬼,也许我把一些简单的事情搞糟了。所以我复制了一些有用的东西,然后重新命名。不。。仍然是404

然后我想。。但是不可能是。。。不,我的根目录中的文件夹不可能与我的视图/文件夹中的文件夹相同吗?可以吗

我改名为。。。还有宾果。。我的观点受到了冲击,一切正常

当我说这违背了ASP.NET MVC的工作原理时,我错了吗。它不应该只在视图/[ControllerName]和视图/共享中寻找合适的视图吗

如果我错了,请指出一些关于这个主题的文献(如果你知道的话)。。。这对我来说真的像个虫子


提前谢谢

这与ASP.NET的工作方式有关,而与ASP.NET MVC无关。当您的根目录中有
Chat
文件夹并且您请求
/Chat
时,web服务器总是倾向于在路由引擎之前提供物理文件夹。因此,它在您的
/Chat
文件夹中查找了一个名为
Default.aspx
(或您已设置的任何默认文档)的文件,但找不到该文件,它使用了404

在ASP.NET 4.0中,您可以:-)



当您添加/创建控制器时,它会为您创建这些文件夹,为什么您要手动创建它们?因为我喜欢手动创建:)-和否。。它没有为我创造任何东西。。(至少在我使用的ASP.NET MVC 2中没有)。。我想这取决于你是如何使用这个工具的。嗨,达林-谢谢你的回答。今天早上起床后,我决定弄清楚ASP.NETMVC到底是在哪里出了问题。因此,我实际上深入研究了手中的MVC源代码调试器。唉,我找不到它做奇怪事情的痕迹。当我将文件夹重新命名为“Chat”时,ASP.NET代码甚至没有得到它。所以我得出了完全相同的结论,那就是它是一个ASP.NET的东西。但我很高兴听到它在ASP.NET 4.0中得到了改进。。这是一个非常有趣的发现:-)谢谢你的信息。
<httpRuntime relaxedUrlToFileSystemMapping="true" />