Pet*_*ger 4 c# asp.net encoding user-controls
默认情况下,asp.net图像控件有用并自动编码设置为ImageUrl属性的任何内容,因此:
imgSomething.ImageUrl = "Generator.aspx?x=1&y=2&z=3";
Run Code Online (Sandbox Code Playgroud)
变
"Generator.aspx?x=1&y=2&z=3"
Run Code Online (Sandbox Code Playgroud)
问题是我想传递Base64编码的参数,我需要手动编写Server.UrlEncode,因为每个参数都可以包含否则会导致问题的字符.
所以基本上我的问题是:如何自动停止Image控件UrlEncoding我设置为ImageUrl参数?
我认为你应该使用服务器控件.不是asp控制.
<img ID="Image2" src="" alt="" runat="server" />
Me.Image2.Src = "&&&"
Run Code Online (Sandbox Code Playgroud)
有用.
我们遇到了同样的问题。我们的解决方法是将所有参数打包到一个 URLEncoded 和 Base64 编码的参数中,然后我们自己将其拆分到另一侧。我们在 WebResource.axd 和 ScriptResource.axd 中注意到类似的方法。
快速而肮脏的方法(使用简单的辅助方法进行 Base64 编码/解码):
string parameters = args.Join('|');
imgSomething.ImageUrl = "Generator.aspx?d=" + Server.UrlEncode(Base64Encode(parameters));
Run Code Online (Sandbox Code Playgroud)
在 Generator.aspx 中:
string data = Base64Decode(Server.UrlDecode(Request.QueryString["d"].ToString().Trim()));
string[] parameters = data.Split('|');
Run Code Online (Sandbox Code Playgroud)
如果您想使用查询字符串样式的参数字符串(即 x=1&y=2&z=3),有一堆示例代码可以让您在字符串和 NameValueCollection 之间移动。
| 归档时间: |
|
| 查看次数: |
2149 次 |
| 最近记录: |