C# 哈希特殊字符在IFRAME中不起作用

C# 哈希特殊字符在IFRAME中不起作用,c#,javascript,asp.net,.net-3.5,C#,Javascript,Asp.net,.net 3.5,Request.QueryString包含以下路径: 例如,Temp\file#hashName.jpg protected void Page_Load(object sender, EventArgs e) { string filePath = Request.QueryString["fileName"]; iframes.Attributes.Add("src", filePath); } 它转到我编写javascript代码的标记 function ViewFile(filePat

Request.QueryString包含以下路径: 例如,Temp\file#hashName.jpg

protected void Page_Load(object sender, EventArgs e)
{
string filePath = Request.QueryString["fileName"];
iframes.Attributes.Add("src", filePath);
}
它转到我编写javascript代码的标记

function ViewFile(filePath) {
    var width = 800;
    var height = 450;
    var left = (screen.width / 2) - (width / 2);
    var top = (screen.height / 2) - (height / 2);
    window.open('ViewFile.aspx?fileName=' + filePath, 'CustomPopUp', 'width=' + width + ', height=' + height + ',toolbar=no,menubar=no,directories=no,resizable=yes,scrollbars=yes,location=no,top=' + top + ',left=' + left);
    return false;
}
但当我跑步时,它会显示(在新窗口中) “找不到资源。” 描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确

请求的URL:/Temp/文件 一旦遇到散列,它就会中断路径。。。 我使用了Server.URLEncode和HttpUtility.URLEncode();它将/和#转换为各自的值。。。bt显示消息

HTTP错误400-请求错误

Javascript Escape()EncodeURI()和EncodeURI组件也不起作用。 我该怎么逃走??iframe是否接受URL中的#值???请引导我通过这个

亲切问候,,
Hardik

ViewFile js函数从何处获取输入文件路径?这个问题可能与此有关。如果文件路径中有#,则可以使用
encodeURIComponent
,例如

'ViewFile.aspx?fileName=' + encodeURIComponent(filePath)

但是,如果函数的
filePath
值不正确,则会出现问题,因为其他地方(例如IFrame源)存在编码问题。每当您在URL/QueryString中使用#时,它可能会导致问题-因此在将其分配给IFrame source时,您也应该尝试转义它。

如何使用替换函数,如filePath=filePath.replace(/\\\\\/ig,”);嗨,麦克斯!!感谢回复..节省时间的同时,它将d文件名存储为#..只有在新窗口中查看时,它才会出现此问题…尽管我会尝试并让您知道Hi Vinay!!非常感谢您的回复!!你是对的。IFRAME源中存在一个问题。获取文件路径后,会从代码隐藏中调用ViewFile js函数。在调试时,它会显示正确的路径,即Temp//file#hashname.jpg。其他不带#的文件都会被正确查看(甚至像file.dotName.jpg这样的文件名也会被正确查看)。只有带#的文件才会出现问题。在Iframe source中如何逃逸?Iframe的源在代码隐藏字符串filePath=Request.QueryString[“fileName”]中分配;Add(“src”,filePath)@用户775829,尝试使用
HttpServerUtility.UrlEncode
对url进行编码,然后将其作为源属性添加到iframe。