gpt4 book ai didi

c# - 在 anchor href 中求值

转载 作者:行者123 更新时间:2023-12-02 05:20:24 24 4
gpt4 key购买 nike

我有以下代码:

protected string VcdControlPanelLink { get; set; }

protected void Page_Load(object sender, EventArgs e) {
VcdControlPanelLink = "http://www.mywebsite.com";
}

以及以下标记:

<a href='<%# Eval(VcdControlPanelLink) %>' target="_blank" title="View the VDC control panel">VDC control panel</a>

但是当我运行该页面时,href 标记呈现为一个空字符串:

<a title="View the VDC control panel" target="_blank" href="">VDC control panel</a>

我已经尝试了各种标记组合等,但无法正常工作。我错过了什么?

最佳答案

如果您使用 data binding expressions <%# ... %>在模板中(例如 GridView 的 ItemTemplate),数据绑定(bind)会自动调用。但是,如果您在模板之外使用此类表达式,则需要通过调用 Control.DataBind() 自行调用数据绑定(bind)。 (或在您的情况下为 this.DataBind()):

protected string VcdControlPanelLink { get; set; }

protected void Page_Load(object sender, EventArgs e) {
VcdControlPanelLink = "http://www.mywebsite.com";
this.DataBind();
}

<!-- Note that you do *not* use Eval here! -->
<a href='<%# VcdControlPanelLink %>' target="_blank" ... />

但是,我认为数据绑定(bind)在这里不是合适的工具。由于您使用的是基本 HTML 元素(而不是 Web 控件),因此您可以只使用内联 ASP.NET 表达式(不需要 this.DataBind()):

<a href='<%= VcdControlPanelLink %>' target="_blank" ... />

无论如何,请确保您的链接不包含引号 ' ,或者您正在进行一些 HTML 注入(inject)。如果该值由用户提供,请不要忘记 HtmlEncode并对其进行 sanitizer 。

关于c# - 在 anchor href 中求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com