我有一个棘手的问题(因为我是MVC的新手),试图使用名为PropertiesController的控制器(以及随后的路由)。
我相信这是因为在我的解决方案中有一个名为“Properties”的目录(我无法删除)。有没有办法解决这个问题?
路线设置只是一条简单的路线:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Properties", action = "List", id = "" } // Parameter defaults
);
我在请求“http://localhost/aptment2/properties/”时在IIS7中遇到的错误是:
当然有一种方法可以找到我找不到的方法吗?欢呼声。
答案 0 :(得分:5)
由于其他人遇到了同样的问题,我猜你在这里遇到了一个保留关键字(我想象ClassControllers也是如此)。
这不是第一次发生 - 深入挖掘环境的内部,you can't route to Windows' reserved keywords either。
答案 1 :(得分:4)
我在配置为使用IIS Express的MVC 3应用程序上进行了PropertiesController
设置。我没有得到你所做的确切错误,但它是相似的(404.20没有默认文件),我确信这是出于同样的原因。
它在我们的生产环境中根本不会引起问题,因为我们发布了应用程序的编译版本,然后它没有Properties文件夹。
要在本地开发时解决这个问题,我已将所有静态内容(scripts / css / etc ...)放在一个目录中,并在启用RouteExistingFiles
时忽略它。
routes.IgnoreRoute("static/{*wildcard}");
routes.RouteExistingFiles = true;
这解决了我的问题,现在我可以浏览example.com/properties/ error free。
答案 2 :(得分:2)
运行快速测试,我得到了相同的行为。使用“属性”之外的其他东西是否可行?
答案 3 :(得分:0)
我不知道它是否适合您,但您可以尝试禁用路由到现有文件。
routes.RouteExistingFiles = false;