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

ASP.NET Web App(.NET Framework4.6.1)视图跳转404错误求助

ASP.NET Web App (.NET Framework 4.6.1) 视图404错误排查方案

1. 视图文件结构与路径校验

  • 确认.cshtml文件放置路径:CategoryController对应的视图必须放在~/Views/Category/目录下,GetCategoryList.cshtml需严格位于该路径内。
  • 调用视图的路径写法:
    • 同控制器下直接返回View("GetCategoryList")即可,框架会自动匹配对应目录文件;
    • 跨控制器调用需使用完整路径,如View("~/Views/OtherController/TargetView.cshtml"),注意必须包含波浪线~开头的完整虚拟路径。

2. 控制器与路由配置检查

  • 路由规则验证:确保RouteConfig.cs默认路由配置正确,无语法错误:
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}
  • 控制器规范:CategoryController类名必须以Controller结尾,且继承自System.Web.Mvc.Controller基类。
  • 访问URL规则:禁止直接访问.cshtml文件,需通过路由访问,如http://localhost:端口号/Category/GetCategoryList。

3. Web.config配置验证

  • Views目录下的Web.config:确认system.web.webPages.razor节点配置正确,MVC版本需与项目引用匹配(以5.2.3.0为例):
<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Optimization"/>
            <add namespace="System.Web.Routing" />
        </namespaces>
    </pages>
</system.web.webPages.razor>
  • 根目录Web.config:检查MVC程序集引用版本一致性:
<assemblies>
    <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>

4. 编译与缓存清理

  • 清理项目的bin和obj目录,重新生成解决方案;
  • 关闭IIS Express(或本地IIS服务),重启项目后再测试;
  • 排查是否存在自定义路由规则覆盖默认路由,导致请求无法匹配到目标Action。

5. Action方法返回值校验

确保CategoryController中的GetCategoryList方法返回正确的视图类型:

public ActionResult GetCategoryList()
{
    // 业务逻辑代码
    return View(); // 或明确指定视图名 return View("GetCategoryList");
}

禁止返回ContentResult等非视图类型(除非业务明确需要)。

内容的提问来源于stack exchange,提问作者Cevdet Berkay Sarıalioğlu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:35:28