我有两个产品页面。如果multipleProduct为false
,则必须重定向到ProductDetails-1.aspx,否则必须重定向ProductDetails-2.aspx页面。
我有 编译错误:<%else
<asp:Repeater ID="rpProducts" runat="server">
<ItemTemplate>
if <%# Eval("MultipleProduct").ToString() == "No")
{%>
<li>
<i class="fa fa-angle-right"></i>
<a href="ProductDetails-1.aspx?ProductID=<%# Eval("ID").ToString()%>" /><%# Eval("ProductName").ToString() %></a>
</li>
<% }%>
<% else
{ %>
<li>
<i class="fa fa-angle-right"></i>
<a href="ProductDetails-2.aspx?ProductID=<%# Eval("ID").ToString()%>" /><%# Eval("ProductName").ToString() %></a>
</li>
<%} %>
</ItemTemplate>
</asp:Repeater>
答案 0 :(得分:1)
您的代码有点混乱,尝试其他方法,更易读,更少重复的代码,更不容易出错,在您的代码中创建方法
在aspx类中创建一个受保护的方法,以获取产品的url。
protected string GetProductUrl(string multipleProduct, int ID)
{
string url = multipleProduct == "No" ? "ProductDetails-1.aspx" : "ProductDetails-2.aspx";
return url + "?ProductID=" + ID;
}
在你的aspx文件中用下一个替换你的代码。
<asp:Repeater ID="rpProducts" runat="server">
<ItemTemplate>
<li>
<i class="fa fa-angle-right"></i>
<a href="<%# GetProductUrl(Eval("MultipleProduct").ToString(), (int) Eval("ID")) %>" >
<%# Eval("ProductName").ToString() %>
</a>
</li>
</ItemTemplate>
</asp:Repeater>