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

ASP.NET找不到已存在的ListCart视图问题求助

解决ASP.NET找不到ListCart视图的问题

核心问题排查与修复步骤


1. 修正控制器名称拼写错误

你的AJAX代码里控制器名写的是单数Product,但实际控制器是复数ProductsController,这会直接导致路由匹配失败,引发视图找不到的假象:

// 错误写法
url:"@Url.Action("updateCart","Product")",
window.location.href = '@Url.Action("ListCart","Product")';

// 正确写法
url:"@Url.Action("updateCart","Products")",
window.location.href = '@Url.Action("ListCart","Products")';

2. 验证视图文件属性

右键ListCart.cshtml打开属性面板:

  • 生成操作必须设为「内容」
  • 复制到输出目录设为「如果较新则复制」
    如果这两个属性被修改,视图文件不会被打包到发布目录,ASP.NET自然无法识别。

3. 显式指定视图路径(排除查找歧义)

在ListCart Action里直接指定视图的完整物理路径,绕过ASP.NET默认的视图查找逻辑:

public IActionResult ListCart()
{
    var cart = HttpContext.Session.GetString("cart");
    if (cart != null)
    {
        List<CartItem> dataCart = JsonConvert.DeserializeObject<List<CartItem>>(cart);
        if (dataCart.Count > 0)
        {
            ViewBag.carts = dataCart;
            return View("~/Views/Products/ListCart.cshtml");
        }
    }
    // 购物车为空时返回视图而非重定向,避免误导
    ViewBag.Message = "购物车为空";
    return View("~/Views/Products/ListCart.cshtml");
}

4. 调整Session分支逻辑

原代码中,当dataCart.Count == 0或cart == null时会直接跳转到Index,如果前端请求期望返回ListCart视图,会被误判为「找不到视图」。改成返回空购物车状态的视图更符合预期。

5. 清理缓存并重启项目

  • 删除项目根目录下的bin和obj文件夹
  • 重新生成项目
  • 重启IIS Express,同时清除浏览器缓存后再测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:50:22