2011-10-25 54 views
0

我在我的代码隐藏这个代码...与符号编码,URL

protected void Page_Init(object sender, EventArgs e) 
{ 
    RegisterCssFile("http://example.com/default.aspx?type=fm&theme=fm"); 
} 

private void RegisterCssFile(string path) 
{ 
    var css = new HtmlGenericControl("link"); 
    css.Attributes.Add("href", path); 
    css.Attributes.Add("type", "text/css"); 
    css.Attributes.Add("rel", "stylesheet"); 
    Page.Header.Controls.Add(css); 
} 

这使得

<link href="http://example.com/default.aspx?type=fm&amp;theme=fm" type="text/css" rel="stylesheet"></link> 

......,正如你所看到的,是错误的。

为什么编码符号(&),我该如何解决它?

回答

2

其实这是正确的。你为什么认为这是错的?在HTML解除转义后,它应该由浏览器发送,只需&。有什么不适合你吗?

+0

它似乎破坏查询字符串。当我浏览生成的网址时,出现错误。当&符号未编码时,我不会收到错误消息。 –

+1

@Bridget:如果你把这个URL直接放到浏览器的地址栏中,那么是的,它将不起作用。但是当在HTML中找到链接时,浏览器应该正确地解除它,并只发送'&'。你为什么不尝试把URL放在'

+0

你是对的。浏览器实际上做了逃避。 –