我在与试图用一个控制器(以及随后的路由)的名称PropertiesController一个棘手的问题(承担与我,因为我是新来的MVC)。
我相信这是因为有一个目录(我真的不能删除)在我的解决方案称为“属性”。 是否有办法解决这?
这条路线的设置仅仅是一个简单的途径:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Properties", action = "List", id = "" } // Parameter defaults
);
和错误,我得到的IIS7请求时,“ HTTP://本地主机/ aptment2 /属性/ ”是:
当然是有办法解决这,我只是找不到? 干杯。
既然是别人有同样的问题,我猜你正在运行到一个保留关键字这里(我想象ClassControllers都出来为好)。
这不是第一次发生的事情或者-在深入到环境的内部, 你无法路由到Windows'保留关键字要么 。
我有一个PropertiesController
上配置为使用IIS Express中的MVC 3应用程序设置。 我不明白,你做确切的错误,但它是类似(404.20无默认文档),我敢肯定,这是出于同样的原因。
它根本不会引起问题在我们的生产环境,因为我们发布的应用程序的编译生成,然后它不具有属性的文件夹。
为了解决这个问题,同时发展本地我有一个目录中我所有的静态内容(脚本/ CSS /等...),我不理它,同时开启RouteExistingFiles
。
routes.IgnoreRoute("static/{*wildcard}");
routes.RouteExistingFiles = true;
这个固定我的问题,现在我可以浏览example.com/properties/无差错。
运行快速测试,我获得相同的行为。 它是使用比其他属性的东西一个可行的选择?
I don't know if it's an option for you, but you could try to disable routing to existing files.
routes.RouteExistingFiles = false;
文章来源: ASP.NET MVC Routing with a controller named “PropertiesController” [closed]