操作符& # 39;= = & # 39;不能应用于int和'Model'类型的操作数

本文关键字:Model 类型 操作数 应用于 不能 操作符 int | 更新日期: 2023-09-27 18:04:09

我知道这个错误是在这里几次,但我找不到解决我的特殊问题的方法。

我有一个包含foreach loop的表,它填充了表数据,如下所示,这个表还具有扩展/关闭功能,在这个表中,我想显示相关部分中的所有组。错误Operator '==' cannot be applied to operands of type 'int' and 'GroupSection'出现在行:

if (item.SectionID == item.GroupSectionID)

我想确保只有当它的GroupSectionID与特定循环中的SectionID相同时,组的详细信息才能出现

<table class="table table-striped">
    <!-- Render the table headers. -->
    <thead>
        <tr>
            <th class="col-md-1">+</th>
            <th class="col-md-2">Section ID</th>
            <th class="col-md-3">Section Name</th>
        </tr>
    </thead>
    <tbody>
        <!-- Render the details of each employee. -->
        @foreach (var item in Model)
        {
            <tr>
                <td class="col-md-1">+</td>
                <td class="col-md-2">@Html.DisplayFor(model => item.SectionID)</td>
                <td class="col-md-3">@Html.DisplayFor(model => item.SectionName)</td>
            </tr>
            if (item.SectionID == item.GroupSectionID)
            {
            <tr>
                <td class="col-md-1" colspan="3">@Html.DisplayFor(model => item.GroupID)</td>
                <td class="col-md-2" colspan="3">@Html.DisplayFor(model => item.GroupName)</td>
            </tr>
            }
        }
     </tbody>
</table>

public class SectionDetail
{
    public int SectionID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public GroupDetail GroupSectionID { get; set; }
}
public class GroupDetail
{
    public int GroupID { get; set; }
    public string GroupDescription { get; set; }
    public string GroupName { get; set; }
    public int GroupSectionID { get; set; }
    public string SectionName { get; set; }
}

提前感谢,我是相对较新的堆栈,所以如果你需要更多的信息等,请告诉我

操作符& # 39;= = & # 39;不能应用于int和'Model'类型的操作数

您正在比较int和复杂类型GroupDetail

if (item.SectionID == item.GroupSectionID.GroupSectionID)

我认为你正在寻找GroupDetail类中的GroupSectionID属性。

为了防止将来混淆:

我建议从引用其他类的属性中删除ID后缀。这样你就不会再把它误认为是int了:)

你试图让编译器比较两种不同的类型。

项目。SectionID是int type,而item.GroupSectionIDclass type

改变你的比较,以表示你真正想比较的东西,类似于:

if (item.SectionID == item.GroupSectionID.GroupSectionID)