You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC项目视图是否需放在特定文件夹及是否存在优先级?

ASP.NET MVC 5 视图相关问题解答

问题1:ASP.NET MVC 5项目的不同视图之间是否存在优先级排序规则?

存在明确的视图查找优先级规则,MVC 5框架定位视图时会按照固定顺序检索路径,优先级从高到低如下:

  • 非区域控制器的检索顺序:
    • 第一优先级:当前控制器对应目录下的视图 ~/Views/[ControllerName]/[ViewName].cshtml(VB项目对应后缀为.vbhtml,下同)
    • 第二优先级:全局共享目录下的视图 ~/Views/Shared/[ViewName].cshtml
  • 区域(Area)内控制器的检索顺序:
    • 第一优先级:区域内对应控制器目录下的视图 ~/Areas/[AreaName]/Views/[ControllerName]/[ViewName].cshtml
    • 第二优先级:区域内共享目录下的视图 ~/Areas/[AreaName]/Views/Shared/[ViewName].cshtml
    • 第三优先级:全局共享目录下的视图 ~/Views/Shared/[ViewName].cshtml

以上所有路径都检索不到对应视图时,框架会抛出视图未找到的异常。如果自定义了ViewLocationExpander,可以修改默认的查找优先级和检索路径。


问题2:项目中的视图是否需要存放在独立的特定文件夹内,才能保障项目正常运行?

默认配置下需要遵循约定的文件夹结构才能正常运行,这是ASP.NET MVC 约定大于配置 原则的典型体现,默认规则要求:

  • 单个控制器对应的业务视图存放在~/Views/[对应控制器名称]目录下
  • 多控制器共用的布局页、部分视图、错误页等公共视图存放在~/Views/Shared目录下
  • 区域内的所有视图存放在对应Area下的Views目录中

但该规则不是强制不可修改的:你可以通过自定义视图引擎、修改ViewLocationFormats属性的方式,自定义框架检索视图的路径,配置完成后视图存放在任意指定路径都可以正常加载,无需遵循默认文件夹结构。


内容的提问来源于stack exchange,提问作者Big Moustache guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:54:04