asp.net中的if子句

时间:2013-04-15 09:42:50

标签: asp.net asp.net-mvc-2

我在ASP.net MVC2中有一个代码段,如下所示:

<% if (Model.EnrollmentNumber.Equals("Global"))
{ %>
  <div id="div1" class="slidingDiv" style="display:none;">
<% }%> 
<% else
{ %>
  <div id="div1" class="slidingDiv" style="display: inline;">                        
<%} %>
<%= Html.TextBoxFor(model => model.EnteredEnrollmentNumber)%>
</div>

那就是,如果Model.EnrollmentNum是“Global”,则隐藏div。否则,div是可见的。但上面的代码有错误。编译器说“元素div缺少其结束标记”

我该如何解决?

2 个答案:

答案 0 :(得分:2)

这是因为编译器不理解<% if标记,并且对于一个结束<div看到两个开放</div>

您可以忽略它,或者在结束标记周围使用相同的if语句:

<% if (Model.EnrollmentNumber.Equals("Global"))
{ %>
  </div>
<% }%> 
<% else
{ %>
  </div>
<%} %>

答案 1 :(得分:0)

编译器不理解只写了一个div。为什么不使用asp:Panel呢?在我看来,这是一个更清洁的解决方案:

<asp:Panel ID="div1" cssclass="slidingDiv" Visible='<%# !Model.EnrollmentNumber.Equals("Global") %>'>
<%= Html.TextBoxFor(model => model.EnteredEnrollmentNumber)%>
</asp:Panel>