Asp.net mvc 2 MVC视图中的If语句问题

Asp.net mvc 2 MVC视图中的If语句问题,asp.net-mvc-2,Asp.net Mvc 2,我试图用以下代码显示表中的数据行。如果表中没有数据,我希望打印一条简单的消息。当有数据要显示时,我的代码会按预期打印数据行,但当列表为空时,它会打印表标题。我怎样才能去掉标题而打印邮件呢 <fieldset> <legend>Department Membership</legend> <% if(Model.departmentsDisplayCheck) {%> <table> <tr>

我试图用以下代码显示表中的数据行。如果表中没有数据,我希望打印一条简单的消息。当有数据要显示时,我的代码会按预期打印数据行,但当列表为空时,它会打印表标题。我怎样才能去掉标题而打印邮件呢

<fieldset>

    <legend>Department Membership</legend>
<% if(Model.departmentsDisplayCheck) {%>
<table>
    <tr>         
        <th>Name</th>
        <th>Type</th>
        <th>Age</th>
        <th>Gender</th>
        <th>Status</th>
    </tr>

<% foreach (var dep in Model.departmentsList){ %>

    <tr>
        <td><%: Html.ActionLink(dep.Name, "Details", "Department", new { id=dep.DepartmentID}, null) %></td>
        <td><%: dep.Type %></td>
        <td><%: dep.Age %></td>
        <td><%: dep.Gender.ToString() %></td>
        <td><%: dep.Status %></td>
    </tr>
<% } %>
<% } %>
<% else { %>
<p><%: "You are not currently a member of any Department." %></p>
<% } %>
</table>

</fieldset>

部门成员
名称
类型
年龄
性别
地位

0){%>
0){%>

您确定模型是空的,而不仅仅是空的吗?如果它返回空的,那么您将得到观察到的行为

试着把它改成

<% if(Model.departmentsList != null || Model.departmentList.Count == 0) {%>

您确定模型是空的,而不仅仅是空的吗?如果它返回空的,那么您将得到观察到的行为

试着把它改成

<% if(Model.departmentsList != null || Model.departmentList.Count == 0) {%>

首先,这些类型的检查不属于视图。相反,您应该在控制器上有一个名为DisplayDepartmentList的属性,然后使用您的检查(以及可能出现的任何其他业务逻辑)进行设置

那你就做这个检查

<% if(Model.DisplayDepartmentList) 

首先,这些类型的检查不属于视图。相反,您应该在控制器上有一个名为DisplayDepartmentList的属性,然后使用您的检查(以及可能出现的任何其他业务逻辑)进行设置

那你就做这个检查

<% if(Model.DisplayDepartmentList) 

谢谢你的回答。标题现在已经没有了,但是消息仍然没有被打印出来。虽然我使用了这个,因为我收到了一个错误:0){%>谢谢你的回答。标题现在已经没有了,但是消息仍然没有被打印出来。虽然我收到了一个错误:0){%>感谢您的回答。与OR语句没有区别。标题仍然显示。感谢您的回答。与OR语句没有区别。标题仍然显示。+1,这是最好和最正确的答案。使用视图模型,而不是将视图意大利化(在视图中编写意大利面代码的过程)。谢谢你的提示。这是我的第一个项目,非常感谢你提供关于改进我代码的任何信息。我按照你的建议做了,但我仍然无法将消息显示在表格的位置。我应该为每个案例使用不同的视图模型吗?@Darin-这与我的答案有什么不同?你仍然需要进行检查。你会知道的我们拥有相同数量的代码,只是一个更小的if语句(但更多的控制器代码)…@Martin,在您的回答中,您正在视图中进行检查。您正在视图中编写多个丑陋的条件。这确实是一个要在视图中编写的代码。这是一个属于视图模型的代码,这正是ShaneC在他的回答中提出的,他引入了一个新的布尔属性,名为
DisplayDepartmentList
+1,这就是最佳且最正确的答案。使用视图模型而不是将视图意大利化(在视图中编写意大利面代码的过程)。谢谢你的提示。这是我的第一个项目,非常感谢你提供关于改进我代码的任何信息。我按照你的建议做了,但我仍然无法将消息显示在表格的位置。我应该为每个案例使用不同的视图模型吗?@Darin-这与我的答案有什么不同?你仍然需要进行检查。你会知道的我们拥有相同数量的代码,只是一个更小的if语句(但更多的控制器代码)…@Martin,在您的回答中,您正在视图中进行检查。您正在视图中写入多个丑陋的条件。这确实是一个要在视图中编写的代码。这是一个属于视图模型的代码,这正是ShaneC在其回答中提出的,他引入了一个新的布尔属性,名为
DisplayDepartmentList