【问题标题】:asp:hyperLink NavigateURL and double quote characters errorasp:hyperLink NavigateURL 和双引号字符错误
【发布时间】:2019-02-12 17:03:48
【问题描述】:

asp:HyperLink 的 NavigateURL 属性的正确语法是什么?

当我使用双引号字符时出现错误。 (例如:-“访问我们社区”健康理疗服务的次数)

 <RAD:GridTemplateColumn HeaderText="KPI" DataField="DisplayName" UniqueName="KPIName" GroupByExpression="DisplayName Group By DisplayName">
                    <ItemTemplate>
                        <asp:Label Text='<%# Eval("DisplayName") %>' ID="lblKPI" runat="server" Visible="false" />
                        <asp:HyperLink runat="server" ID="lnkKpi" rel='<%# Eval("DisplayName") %>' Text='<%# Eval("DisplayName") %>' NavigateUrl='<%# Eval("KPIID","~/Authorised/PerformanceManagement/PerformanceManagement.aspx?Kpi={0}") %>' Target="_blank"></asp:HyperLink>
                    </ItemTemplate>
                </RAD:GridTemplateColumn>

结果

如何处理错误?

【问题讨论】:

    标签: c# asp.net hyperlink


    【解决方案1】:

    使用HtmlEncode 作为值

    Text='<%# HttpUtility.HtmlEncode(Eval("DisplayName")) %>'
    

    或者

    NavigateUrl='<%# "~/Authorised/PerformanceManagement/PerformanceManagement.aspx?Kpi=" + HttpUtility.HtmlEncode(Eval("DisplayName")) %>'
    

    【讨论】:

    • 没用。我认为 NavigateURL 属性有错误。
    • 查看我的更新。但是您需要转义这些字符以在 URL 中使用
    • 解析器错误 描述:解析服务该请求所需的资源时出错。请查看以下特定的解析错误详细信息并适当地修改您的源文件。解析器错误消息:服务器标签格式不正确。
    • 我使用了 rel 属性。这是错误的。我使用了第一个解决方案。 rel='&lt;%# HttpUtility.HtmlEncode(Eval("DisplayName")) %&gt;' 现在工作正常。谢谢..
    【解决方案2】:

    您可以通过在代码隐藏文件中创建一个 URL 来做到这一点。

    Dynamically set a hyperlink control's NavigateUrl property inline

    【讨论】:

    猜你喜欢
    • 2016-07-11
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2017-02-26
    • 1970-01-01
    相关资源
    最近更新 更多