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

请求https://localhost:44328/Products时ProductsController返回404错误求助

问题原因及排查解决步骤

1. 首要问题:视图文件后缀错误

你当前的Index视图命名为Index.html,ASP.NET Core MVC默认查找的Razor视图后缀为.cshtml,框架找不到匹配的视图文件时会触发404错误。
直接修复方案:将Views/Products/Index.html重命名为Views/Products/Index.cshtml,重启项目后重试访问。

2. 路由配置排查

  • 检查Program.cs(.NET 6+)或Startup.cs(.NET 5及更早版本)中的路由配置,确保存在默认路由规则:
// 示例默认路由配置
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
  • 确认ProductsController没有添加[ApiController]特性,该特性会将控制器标记为API接口控制器,不会走视图查找逻辑。
  • 如果你使用特性路由,确认Controller或Action上的[Route]特性配置和访问路径匹配,示例正确配置:
[Route("Products")]
public class ProductsController : Controller
{
    [HttpGet]
    public async Task<IActionResult> Index(int p =1)
    {
        // 逻辑代码
    }
}

3. 服务注册与中间件顺序排查

  • 确认服务注册阶段已添加控制器视图服务:
builder.Services.AddControllersWithViews();
  • 确认中间件顺序正确,app.UseStaticFiles()要放在路由匹配、控制器映射之前,错误的顺序会导致请求先被静态文件中间件拦截,找不到静态文件时不会转发到控制器处理。

4. 路径测试验证

尝试访问https://localhost:44328/Products/Index,如果该路径可正常访问,说明默认路由的默认Action配置存在问题,调整默认路由的默认Action为Index即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:54:01