我正在尝试使用以下代码在表中显示数据行。如果表没有数据,我想要打印一条简单的消息。当有数据显示时,我的代码会按预期打印数据行,但当列表为空时,它会打印表格标题。如何摆脱标题并打印消息呢?
<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 :(得分:3)
首先,这些检查不属于View。相反,你应该在你的控制器上有一个名为DisplayDepartmentList的属性,然后使用你的支票(以及可能出现的任何其他业务逻辑)来设置它。
然后你正在做这个检查..
<% if(Model.DisplayDepartmentList)
答案 1 :(得分:2)
<% if(Model.departmentsList != null && Model.departmentsList.Count > 0) {%>
答案 2 :(得分:1)
你确定模型是空的而不仅仅是空的吗?如果它变回空,那么你就会得到观察到的行为。
尝试将其更改为
<% if(Model.departmentsList != null || Model.departmentList.Count == 0) {%>