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

控制器MyArticle视图返回404错误,寻求排查解决方案

ASP.NET Core Razor视图返回404且MyArticle动作未触发问题排查

问题现象

控制器中MyArticle对应的视图返回404错误,且MyArticle动作存在触发异常,具体表现:

  • 浏览器地址不传入id时(https://localhost:7105/Articles/MyArticle/),MyArticle(long? id)动作可正常激活;硬编码有效id后能成功加载数据库数据,但return View(article)返回空白页。
  • 删除并自动重建Razor视图后,问题依旧,仍报404。
  • 在解决方案资源管理器右键视图选择「在浏览器中显示」,视图可展示所有无图片数据;替换视图代码后再次操作,视图可正常展示含图片的全部数据。
  • 视图通过卡片链接触发调用,代码如下:
<div class="card h-100 mx-2 mt-3" style="width: 16rem;">
   <img src="@Url.Content("~")/Upload/@item.VendeurName/@item.Crec_Ref/Thumbnails/@item.FirstImage" class="card-img-top" alt="..." href="#" />
<div class="card-body">
<h6 class="card-title soussoustitre-ajout">@Html.DisplayFor(modelItem => item.Nom)</h6>
<p class="card-price title-addition">@Html.DisplayFor(modelItem => item.PublicPrice) €</p>
<a href="/Articles/MyArticle/@Html.DisplayFor(modelItem => item.Id)" class="stretched-link"></a>
</div>
</div>
  • 已确认MyArticle动作与视图名称关联正确。
  • Firefox、Brave浏览器测试结果一致。
  • 平行开发的项目克隆版本可正常运行。
  • 重启电脑后问题未解决。

排查建议

1. 路由规则验证

  • 检查Program.cs/Startup.cs中的全局路由配置,确认是否为MyArticle动作设置了正确的路由模板,比如是否允许id为可选参数,或参数类型约束是否匹配long类型。
  • 尝试在MyArticle方法上显式添加路由特性,强制指定路由规则:
    [Route("Articles/MyArticle/{id?}")]
    public IActionResult MyArticle(long? id)
    {
        // 方法逻辑
    }
    

2. 参数传递正确性检查

  • 查看页面源代码,确认卡片链接中的@Html.DisplayFor(modelItem => item.Id)是否输出了有效id值,链接格式应为/Articles/MyArticle/xxx(xxx为数字id),避免空值或非数字值导致路由匹配失败。
  • 将链接写法替换为框架生成方式,避免手动拼接错误:
    <a href="@Url.Action("MyArticle", "Articles", new { id = item.Id })" class="stretched-link"></a>
    

3. 视图文件验证

  • 确认视图文件路径为Views/Articles/MyArticle.cshtml,且文件属性中「复制到输出目录」设置为「如果较新则复制」或「始终复制」。
  • 在返回视图时显式指定视图名称,避免框架查找错误:
    return View("MyArticle", article);
    

4. 请求日志排查

  • 启用ASP.NET Core请求日志,查看请求的路由匹配流程,确认是否存在路由冲突或请求被中间件拦截的情况。
  • 在MyArticle方法开头添加日志输出,确认方法是否被触发及参数接收是否正确:
    _logger.LogInformation("MyArticle动作触发,接收id: {Id}", id);
    

5. 项目差异对比

  • 将当前项目与可正常运行的克隆版本对比,重点检查:
    • Program.cs/Startup.cs的路由、中间件配置
    • ArticlesController.cs的代码差异
    • 视图文件的目录结构与属性设置
    • launchSettings.json中的启动配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:23:12