c# – ASP.NET自动将&转换为&
小问题,但它仍然让我疯狂.
我正在为< script>构建一个url标记包含要在ASP.NET页面上呈现,如下所示: <script src='<%= string.Format("http://example.com/page.aspx?a={0}&b={1}&c={2:0.00}",A,B,C)%>' type='text/javascript'></script> 问题是何时呈现,&字符替换为& amp;: <script src='http://example.com/page.aspx?a=xxx&b=zzz&c=123.45' type='text/javascript'></script> 我很期待这个,显然: <script src='http://example.com/page.aspx?a=xxx&b=zzz&c=123.45' type='text/javascript'></script> 但是,如果我直接渲染网址,则在< script>之外标签,看起来还不错!干得好 <%= string.Format("http://example.com/page.aspx?a={0}&b={1}&c={2:0.00}",C) %> 呈现这个: http://example.com/page.aspx?a=xxx&b=zzz&c=123.45 是什么赋予了?我该如何制止这种疯狂?我的强迫症不能服用! 解决方法
正如@Falkon和@AVD所说,ASP.NET在< script>中自动执行“正确”的操作.标签.请参阅w3c建议 –
C.12. Using Ampersands in Attribute Values (and Elsewhere)
我不完全确定为什么ASP.NET在页面的其余部分不会做同样的事情(可能有很多好的理由),但至少它正在纠正脚本标记中的&符号.结论:虽然您可能正在诅咒ASP.NET以“扰乱”您的网址,但您可能要感谢它,而不是帮助您的网页符合标准. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |