gpt4 book ai didi

asp.net - 如何停止 asp.net 编码 & 获取参数?

转载 作者:行者123 更新时间:2023-12-02 18:45:51 24 4
gpt4 key购买 nike

我使用以下代码添加对 asp.net 中页面的 body 参数的一系列调用:

uxBodyTag.Attributes["onbeforeunload"] += 
"ajaxRequest('UnlockQuery.ashx?QueryID=" + queryId.ToString() +
"&UserID=" + Session["UserID"].ToString() + "');";

这被渲染为:

<body id="uxBodyTag" onbeforeunload=
"ajaxRequest('UnlockQuery.ashx?QueryID=176&amp;UserID=11648');">

&意味着我的 ashx 页面未检索正确的变量 - 如何阻止 asp.net 执行此操作?

编辑:

使用 服务器.UrlEncode给我以下内容:

<body id="uxBodyTag" onbeforeunload=
"ajaxRequest('UnlockQuery.ashx%3fQueryID%3d179%26UserID%3d11648')%3b">

这更糟糕。

最佳答案

在 HTML 中,& 符号需要编码,无论何时何地,在属性值中也是如此(<script> 标记的内容显然是一个值得注意的异常(exception))。 ASP.NET 做了正确的事情。

浏览器在实际使用属性值之前将对其进行未编码。所以你的onbeforeunload属性的字面值为:

ajaxRequest('UnlockQuery.ashx?QueryID=176&UserID=11648');

而 HTML 表示需要具有 &amp;代替& 。浏览器通常也能理解编码错误的版本,但 SGML 解析器会提示名为 &UserID 的未知/无效实体。 .

关于asp.net - 如何停止 asp.net 编码 & 获取参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/564549/

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