我有以下路线,2个控制器“Home”,“Properties”:
routes.MapRoute(
name: "DefaultWithNoActionInUrl",
url: "{controller}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
这些网址正确路由并转到索引操作:
这个一直给资源找不到错误:
似乎当我使用没有动作和ID的属性url时,它不会映射到任一路径。
我的路线出了什么问题?
答案 0 :(得分:0)
您可能会注意到在解决方案资源管理器中,有一个名为“Properties”的文件夹,其中包含AssemblyInfo.cs。 如果我就在这里,当你编写/ Properties时,它基本上是由一个负责列出静态文件的模块捕获的(没有路由到asp.net mvc路由)。当它试图列出这个文件夹的内容时运行时不允许它,因为没有为目录列表配置此文件夹。
同样,如果您创建名为“Content”的控制器,您将看到相同的错误。
如果您有可能更改控制器的名称?
如果这不可能,你可以跟随。
在你的RouteConfig.cs
中routes.RouteExistingFiles = true;
有关上述工作原理的详细信息,请参阅https://prerakkaushik.wordpress.com/2014/02/12/routing-request-for-static-files-with-or-without-extension-in-asp-net-mvc/