ASP.NET MVC路由与一个名为“PropertiesController”控制器[关闭](AS

2019-09-17 10:11发布

我在与试图用一个控制器(以及随后的路由)的名称PropertiesController一个棘手的问题(承担与我,因为我是新来的MVC)。

我相信这是因为有一个目录(我真的不能删除)在我的解决方案称为“属性”。 是否有办法解决这?

这条路线的设置仅仅是一个简单的途径:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Properties", action = "List", id = "" } // Parameter defaults 
);

和错误,我得到的IIS7请求时,“ HTTP://本地主机/ aptment2 /属性/ ”是:

当然是有办法解决这,我只是找不到? 干杯。

Answer 1:

既然是别人有同样的问题,我猜你正在运行到一个保留关键字这里(我想象ClassControllers都出来为好)。

这不是第一次发生的事情或者-在深入到环境的内部, 你无法路由到Windows'保留关键字要么 。



Answer 2:

我有一个PropertiesController上配置为使用IIS Express中的MVC 3应用程序设置。 我不明白,你做确切的错误,但它是类似(404.20无默认文档),我敢肯定,这是出于同样的原因。

它根本不会引起问题在我们的生产环境,因为我们发布的应用程序的编译生成,然后它不具有属性的文件夹。

为了解决这个问题,同时发展本地我有一个目录中我所有的静态内容(脚本/ CSS /等...),我不理它,同时开启RouteExistingFiles

  routes.IgnoreRoute("static/{*wildcard}");
  routes.RouteExistingFiles = true;

这个固定我的问题,现在我可以浏览example.com/properties/无差错。



Answer 3:

运行快速测试,我获得相同的行为。 它是使用比其他属性的东西一个可行的选择?



Answer 4:

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]