【问题标题】:Ampersand encoding in URLURL 中的 & 符号编码
【发布时间】:2011-12-14 18:06:11
【问题描述】:

我的代码隐藏中有这段代码...

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>

...如您所见,这是错误的。

为什么要对与号 (&) 进行编码,我该如何解决?

【问题讨论】:

    标签: asp.net url url-encoding


    【解决方案1】:

    其实这是对的。为什么你认为这是错误的?它应该由浏览器在 HTML 取消转义后以 &amp; 的形式发送。有什么不适合你吗?

    【讨论】:

    • 好像破坏了查询字符串。当我浏览生成的 url 时,出现错误。当与号未编码时,我没有收到错误消息。
    • @Bridget:如果您将该 URL 直接放入浏览器的地址栏中,那么是的,它不会起作用。但是当在 HTML 中找到链接时,浏览器应该正确地取消转义它并只发送&amp;。为什么不尝试将 URL 放入 &lt;a href 链接并单击它。那么它是否有效,即使如图所示转义?
    猜你喜欢
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2010-09-18
    • 2012-04-07
    • 2015-10-18
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多