【问题标题】:Setting a Dynamic Href in Hyperlink in MasterPage在 MasterPage 的超链接中设置动态 Href
【发布时间】:2013-04-03 15:09:58
【问题描述】:

以下将起作用:

<%  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 文件中没有代码隐藏,对吧?

感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

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

    你应该去掉那个&lt;font&gt;标签,只使用CSS。该标签已弃用。

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

    【讨论】:

    • 谢谢,这对我的问题有用。但是,代码隐藏的东西不起作用。我已经尝试右键单击并选择查看代码;它只是带来了相同的 .master 页面。这是我单击 Show All Files picturepush.com/public/12582556 时看到的屏幕截图
    • @user1477388 嗯......我想也许你设置它没有后面的代码,因为你正在做页面本身的所有代码?如,顶行没有 CodeBehind 引用,如 &lt;%@ Master Language="VB" CodeBehind="Site1.master.vb"...?
    • 我猜是的,既然你提到了,CodeBehind="DefaultView.master.cs"。也许如果我找到那个文件,它就会在那里......
    • 如果它确实引用了该文件,那么它应该在那里。虽然考虑到你的截图,但这绝对是奇怪的。
    猜你喜欢
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2019-07-19
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多