如何防止ASP.NET转换&;符号至&;amp;向控件添加url时';s属性?
这就是我要添加的内容,它将如何防止ASP.NET转换&;符号至&;amp;向控件添加url时';s属性?,asp.net,attributes,url,Asp.net,Attributes,Url,这就是我要添加的内容,它将&呈现为& sharelink.Attributes.Add(“addthis:url”、“http://”&Request.url.Host&“/Resources/PublicView.aspx?RID=“&R.ResourceID&”&Key=“&Key”) 我需要它来渲染这个 ?RID=64&Key=%2fwEUKwEDAgQCFAJA 而不是这个 ?RID=64&Key=%2fwEUKwEDAgQCFAJA 转换为&是正
&
呈现为&代码>
sharelink.Attributes.Add(“addthis:url”、“http://”&Request.url.Host&“/Resources/PublicView.aspx?RID=“&R.ResourceID&”&Key=“&Key”)
我需要它来渲染这个
?RID=64&Key=%2fwEUKwEDAgQCFAJA
而不是这个
?RID=64&Key=%2fwEUKwEDAgQCFAJA
转换为&
是正确的,浏览器应该能够处理它
要证明这一点,请查看源代码
编辑:解释一下,这是正确的方法。写
是错误的。正如ASP.Net在编写
时将使用实体一样,如果在属性中添加了符号,它也将使用实体。由于评论的限制,我将此评论作为答案发布
我同意,对于严格的XHTML遵从性尤其如此
我已经创建了一个带有&
和&代码>可用于W3C验证
请参阅的演示页面,并单击最底部的超链接以执行w3c验证,或
错误将突出显示,所有错误都指向第14行:
href="http://www.google.com/search?q=stackoverflow&ie=UTF-8"
而在第19行中,则有一个类似的示例,带有&代码>将通过:
href="http://www.google.com/search?q=stackoverflow&ie=UTF-8"
事实上,你不需要。你试过了吗?我试过了。这仍然不能回答为什么当我告诉.net输出一个字符串时会得到另一个字符串的问题。你可能是对的,一些Borwser或servres可以容纳&;但这仍然留下了一个问题,那就是为什么它在一开始就被改变了;应该被使用,这就是为什么他们!等一下!Internet Explorer(6、7、8?)不支持&;在iFrame的源属性中。我猜他们应该想到能够使用&而不是&这一点。当您试图分解查询字符串中的值时,这是不正确的是用于分隔键值对的保留字符。浏览器应解码&为避免验证程序和浏览器出现问题,在HTML中编写URL时始终使用&;代替&:“这不是编写URL的问题,而是分离查询字符串参数的问题。你是说如果我有一个字符串abc.com?a=1&;b=2&;c=3,这将被解析为a=1、b=2和c=3?是。浏览器将解码&代码>解析URL时。