MVC控制器有什么特别的地方吗
本文关键字:方吗 控制器 什么 MVC | 更新日期: 2023-09-27 18:26:50
经过多年的努力,考虑到路由冲突等问题,我从一开始就开始了一个单独的项目。
当您尝试访问根站点(http://site/properties
)时,一个名为"属性"的MVC控制器似乎总是返回一条403.14禁止消息——然而,其他页面正常工作(http://site/properties/index
)。
它在一个区域中作为控制器工作得很好,但是,我不能在主站点中创建它。
我想知道是否有人知道为什么以及最好的解决方法是什么?
除了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
正试图从那里为内容提供服务器,但最终还是被阻止了。