You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

子分类商品列表问题:iPhone X跨分类显示需修正至仅iPhone分类

解决商品跨分类错误显示的问题

嘿,我来帮你搞定这个iPhone X同时出现在三星和iPhone分类里的问题~

先看你现在的代码,目前只是根据SubCategoryIsHome来决定是否渲染子分类链接,但完全没校验子分类所属的主分类,这就导致关联错误的子分类(或者对应的商品)会在多个分类下显示出来。

要解决这个问题,我们只需要在遍历子分类的时候,增加主分类的校验逻辑,确保只有属于iPhone主分类的子分类才会被展示。

修改后的代码示例

<ul class="row-list">
    @foreach (var item in Model)
    {
        // 只展示需要在首页显示、且属于iPhone主分类的子分类
        if (item.SubCategoryIsHome == true && item.MainCategoryName == "iPhone")
        {
            // 统一判断选中状态,避免重复代码
            bool isSelected = selectedSubCategory != null && item.Name == string.Intern(selectedSubCategory.ToString());
            <li>
                <a href="@Url.Action("SubList", "Home", new { id = item.Id })" 
                   @(isSelected ? "class='active'" : "")>
                    @item.Name
                </a>
            </li>
        }
    }
</ul>

几个关键点说明

  • 这里我假设你的子分类模型(也就是item)有一个MainCategoryName属性,用来标记它所属的主分类;如果你的系统里用的是主分类ID(比如iPhone主分类的ID是固定值2),把判断条件改成item.MainCategoryId == 2就好。
  • 我还优化了选中状态的判断逻辑,不用重复写两次几乎一样的<a>标签,让代码更简洁易维护。
  • 如果想从根源解决问题,更推荐在后端获取Model数据的时候就直接过滤掉不属于iPhone主分类的子分类,这样视图层的逻辑会更轻量干净。

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

火山引擎 最新活动