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

MVC中RoutingAction返回Admin视图报错,请求解决方法

解决MVC视图找不到的问题

咱们直接来拆解你遇到的问题:

问题根源

当你在Home控制器的RoutingAction方法里调用View("Admin/AdminHome/index")时,ASP.NET MVC的视图引擎会默认从当前控制器对应的视图目录(也就是~/Views/Home/)下去查找这个路径——相当于它在找~/Views/Home/Admin/AdminHome/index.cshtml,但你的Admin视图显然是放在~/Views/Admin/AdminHome/index.cshtml的,这就导致了视图找不到的错误。

解决方案

这里有几种实用的解决办法,你可以根据项目结构选择:

1. 使用绝对视图路径直接定位

直接指定视图的完整根路径,让视图引擎精准找到文件:

public ActionResult RoutingAction() {
    if (User.IsInRole("Admin")) 
        return View("~/Views/Admin/AdminHome/index.cshtml"); // 加上~根路径和完整扩展名
    else if (User.IsInRole("Hr")) 
        return View();
    else 
        return View();
}

这种方式最直接,适合快速修复问题。

2. 跳转到Admin控制器的对应Action(更符合MVC规范)

如果你的项目里存在AdminController,并且里面有AdminHome这个Action,建议用RedirectToAction跳转,而不是直接返回视图:

public ActionResult RoutingAction() {
    if (User.IsInRole("Admin")) 
        return RedirectToAction("AdminHome", "Admin"); // 跳转到Admin控制器的AdminHome方法
    else if (User.IsInRole("Hr")) 
        return View();
    else 
        return View();
}

这样不仅能正确加载视图,URL也会变成http://localhost:3013/Admin/AdminHome,更符合MVC的路由设计逻辑,后续维护也更方便。

3. 检查视图文件的实际位置与依赖

最后别忘了确认两个细节:

  • ~/Views/Admin/AdminHome/index.cshtml文件确实存在,没有拼写错误
  • 如果视图使用了母版页(Layout),要确保母版页路径正确——比如Admin目录下的_Layout.cshtml是否存在,或者视图里的Layout属性有没有指定正确的路径

调试小技巧

你可以查看错误页面里列出的「搜索位置」,里面会显示视图引擎实际去哪些路径查找了文件,对比后就能快速定位路径问题。

内容的提问来源于stack exchange,提问作者Md Ghousemohi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:04:06