nopCommerce 4.5.2视图Route存在但提示未找到的异常问题
nopCommerce 4.5.2 区域视图加载异常修复
异常信息
请求处理时抛出未处理异常:
InvalidOperationException: 未找到视图 '/OGS/Route.cshtml'。已搜索的位置如下:/OGS/Route.cshtml
目标视图实际存放路径:Nop.Web/Areas/Admin/Views/OGS/Route.cshtml
对应控制器代码:
public class OGSRoute : BaseAdminController { public virtual async Task<IActionResult> Index() { return View("/OGS/Route.cshtml"); } }
控制器继承自BaseAdminController,调用View方法时未定位到Admin区域下的视图文件,触发报错。
故障原因
ASP.NET Core MVC的视图路径规则中,以/开头的路径会被识别为应用根目录下的绝对路径,传入/OGS/Route.cshtml时,框架只会去站点根目录的OGS文件夹下查找目标文件,不会自动匹配当前控制器所属的Admin区域,因此无法找到存放在Areas目录下的视图文件。
修复方法
任选一种方式修改即可:
- 写全视图的完整根路径,明确指向Admin区域下的视图文件
return View("~/Areas/Admin/Views/OGS/Route.cshtml"); - 直接传入视图名称,不写前置路径,框架会自动按照当前区域、控制器所属的视图搜索规则匹配对应文件
return View("Route"); - 若上述修改后仍有异常,为控制器显式添加Admin区域标注,再使用视图名方式返回即可
[Area("Admin")] public class OGSRoute : BaseAdminController { // 其余代码不变 public virtual async Task<IActionResult> Index() { return View("Route"); } }
额外排查项:检查Route.cshtml的文件属性,确保生成操作设置为内容,复制到输出目录设置为如果较新则复制,避免发布或运行时文件未被加载到输出目录导致的找不到问题。
内容的提问来源于stack exchange,提问作者s.k.Soni
相关产品推荐
相关产品推荐

