gpt4 book ai didi

c# - ASP.NET 自动将 & 转换为 &

转载 作者:太空狗 更新时间:2023-10-29 20:28:05 26 4
gpt4 key购买 nike

小问题,但它仍然让我抓狂。

我正在为 <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&amp;b=zzz&amp;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> 之外呈现 url标签,看起来不错!只是在做

<%= string.Format("http://example.com/page.aspx?a={0}&b={1}&c={2:0.00}", A, B, 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)

In order to ensure that documents are compatible with historical HTML user agents and XML-based user agents, ampersands used in a document that are to be treated as literal characters must be expressed themselves as an entity reference (e.g. "&amp;").

我不完全确定为什么 ASP.NET 在页面的其余部分不做同样的事情(可能有很多充分的理由),但至少它纠正了脚本标记中的符号。结论:虽然您可能会咒骂 ASP.NET“扰乱”您的 URL,但您可能想要感谢它帮助您的网页符合标准。

关于c# - ASP.NET 自动将 & 转换为 &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com