我不想拥有两个母版页,因此我尝试这样做(为了便于阅读,省略了< %%>):
if (a == b)
{
<asp:ContentPlaceHolder ID="X" runat="server" />
}
else
{
<div class="c">
<asp:ContentPlaceHolder ID="X" runat="server" />
</div>
}
但它不会让我:
Duplicate ContentPlaceHolder 'X' were found. ContentPlaceHolders require unique IDs.
所以我尝试使用ID =“&lt;%=”X“%&gt;”设置ID不,也不会让我:
Server tags cannot contain <% ... %> constructs.
然后我尝试了&lt;%#Eval(“X”)%&gt;和不:
The ID property of a control can only be set using the ID attribute in the tag and a simple value. Example: <asp:Button runat="server" id="Button1" />
有没有办法实现我想要做的事情?我在想像
echo '<asp:ContentPlaceHolder ID="X" runat="server" />'
或者添加标记的一些动态方式,因为显然解析器无法识别if else块,它不会让两个标签具有相同的ID。
我正在使用MVC和默认的视图引擎。
答案 0 :(得分:3)
你试过这样的事吗:
<% var isAEqualB = a == b; %>
if (isAEqualB)
{
<div class="c">
}
<asp:ContentPlaceHolder ID="X" runat="server" />
if (isAEqualB)
{
</div>
}