MVC控制器有什么特别的地方吗

本文关键字:方吗 控制器 什么 MVC | 更新日期: 2023-09-27 18:26:50

经过多年的努力,考虑到路由冲突等问题,我从一开始就开始了一个单独的项目。

当您尝试访问根站点(http://site/properties)时,一个名为"属性"的MVC控制器似乎总是返回一条403.14禁止消息——然而,其他页面正常工作(http://site/properties/index)。

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

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

MVC控制器有什么特别的地方吗

除了DavidG的答案。

发布项目时,编译后的生成没有Properties文件夹。为了在本地开发时解决此问题,可以将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 }
       );
}

问题是您的项目已经包含一个名为Properties的文件夹,该文件夹主要用于AssemblyInfo.cs文件,但其中也包含其他内容。用于解析发送给客户端的文件的引擎优先考虑文件和文件夹,而不是路由。因此URL http://site/properties正试图从那里为内容提供服务器,但最终还是被阻止了。