在母版页的超链接中设置动态Href

时间:2013-04-03 15:09:59

标签: c# asp.net master-pages webforms

以下内容可行:

<%  if (Sql.ToBoolean(HttpContext.Current.Application["CONFIG.SHOW_REPORTING_LINK"])) 
    { 
%>
    <asp:HyperLink ID="hypReporting" ForeColor="white" Text='Reporting' NavigateUrl="#" CssClass="myAreaLink" Runat="server" />
           &nbsp;<font color="white">|</font>&nbsp; 
<% 
    } 
%>

但是,我需要一个动态链接,而不是静态链接。我试过这个:

<%  if (Sql.ToBoolean(HttpContext.Current.Application["CONFIG.SHOW_REPORTING_LINK"])) 
    { 
%>
    <asp:HyperLink ID="hypReporting" ForeColor="white" Text='Reporting' NavigateUrl="<%# Eval(HttpContext.Current.Application["CONFIG.REPORTING_URL"]) %>" CssClass="myAreaLink" Runat="server" />
           &nbsp;<font color="white">|</font>&nbsp; 
<% 
    } 
%>

但是,它给了我一个错误,上面写着“服务器标签格式不正确。”

我通常会从代码隐藏中执行此操作,但.master文件中没有代码隐藏,对吧?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

NavigateUrl中的双引号导致错误的服务器标记。它应该是:

NavigateUrl='<%# Eval(HttpContext.Current.Application["CONFIG.REPORTING_URL"]) %>'

你应该摆脱那个<font>标签,只使用CSS。该标签已弃用。

是的,母版页文件中有代码隐藏(右键单击 - &gt;查看代码;或者在解决方案资源管理器中,确保单击“显示所有文件”)。在那里做这件事可能会更容易/更清洁。