我正在尝试生成一个包含作为查询字符串变量之一的UNC路径的URL。当用户点击ASP.NET按钮控件时,该URL将在弹出窗口中打开。当点击按钮时,反斜杠将从UNC路径中移除,导致页面中断。为什么从查询字符串中删除反斜线 - ASP.NET&Javascript
该按钮在页面源文件中正确呈现所有反斜线。
有什么办法可以防止这种情况发生?
这里是我的源代码:
后面的代码:
string unc = @"\\myserver\myfolder\myfile.txt";
string url = string.Format("http://www.mysite.com/page.aspx?a={0}", unc);
MyButton.Attributes.Add("onclick", @"javascript:FullPop('" + url + @"')");
ASPX页面
<script language="javascript" type="text\javascript">
function FullPop(Newurl) {
Win = window.open(Newurl,"Monitor", "fullscreen=0,toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=800,height=600,top=50,left=50");
Win.focus();
}
</script>
<asp:button id="MyButton" runat="server" cssclass="mycss" text="View Actual Target" />
更新
Server.UrlEncode不起作用。同样的行为。
更新1
根据丹尼尔·路易斯的回答,我制定了以下解决方案:
protected void Page_Load(object sender, EventArgs e)
{
string unc = @"\\myserver\myfolder\myfile.txt";
string url = string.Format("http://www.mysite.com/page.aspx?a={0}", unc);
MyButton.Attributes.Add("onclick", @"javascript:FullPop('" + this.EscapeforJavaScript(url) + @"')");
}
private string EscapeforJavaScript(string url)
{
return url.Replace(@"\", @"\\");
}
然后urlDecode;) – 2009-05-04 21:46:24