div从asp.net中的代码中添加重定向和背景图像

时间:2011-05-24 17:49:06

标签: c# javascript asp.net html

我在带有div的asp.net母版页中有一个runat=server

当用户点击div重定向到另一个页面时,我想要做的就是代码隐藏。我尝试了以下内容:

HTML:

<div id="logoHead" runat="server"></div>

代码背后:

logoHead.Attributes.Add("OnClick", "window.location = MyUrl"); 

这不起作用,我该怎么做?

1 个答案:

答案 0 :(得分:2)

你正在做的事情会很好。你遇到的问题是'Attributes.Add'导致javascript被HTML编码。这是因为您没有使用ASP.NET特定控件。您的onclick呈现为:

onclick="window.location=&#39;MyUrl&#39;"

为了解决这个问题,我将任何我想要添加的javascript以这种方式添加到NON ASP.NET控件中,以消除任何将被HTML编码的有趣字符。例如:

使用Javascript:

function redirect(address) {
    window.location = 'http://' + address;
}

ASPX:

<div id="divTesting" runat="server">
    Testing
</div>

代码背后:

divTesting.Attributes.Add("onclick", "redirect('www.microsoft.com');");

这只是HTML控件的问题,您要添加runat='server'标记来访问服务器端。如果您将div切换为asp:Panel,则Attribute.Add上没有完成HTML编码,您可以在没有代理javascript功能的情况下放置任何内容。这是一种恼人的“特征”,但我怀疑它是有意的。