6

经过长时间的努力工作,思考路由冲突等等 - 我从一开始就开始了一个单独的项目。有没有什么特殊的MVC控制器称为属性?

它看起来像一个名为“properties”的MVC控制器在尝试访问根站点(http://site/properties)时始终返回一个403.14禁止消息 - 但是,其他页面可以正常工作(http://site/properties/index)。

它可以很好地作为一个区域中的控制器,但是我不能在主站点中创建它。

我想知道是否有人知道为什么以及最好的方法是什么?

回答

2

问题是您的项目已经包含一个名为Properties的文件夹,它主要用于AssemblyInfo.cs文件,但其中还包含其他内容。用于解析发送给客户端的文件的引擎优先于路由中的文件和文件夹。所以网址http://site/properties正试图从那里服务器的内容,无论如何这最终会被阻止。

3

除了DavidG的answer

发布项目时,编译的版本没有“属性”文件夹。要在本地开发时解决此问题,可以将RouteExistingFiles设置为true,以便ASP.NET路由处理所有请求。

public static void RegisterRoutes(RouteCollection routes) 
{ 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.RouteExistingFiles = true; 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
} 
相关问题