Server.MapPath和window.open()

时间:2012-11-17 13:07:03

标签: c# javascript window.open server.mappath

我实际上正在开发一款应用,可让用户上传他们想要的文件。一旦上传,这些文件也应该是可视化的。

为了做到这一点,我尝试使用Server.MapPath获取文件路径以及其他值的串联。文件路径作为window.open javascript函数中的参数传递。

我的问题是我根本没有得到任何结果。没有窗户打开。

这是我的代码:

string completeUrl = Server.MapPath(ConfigurationManager.AppSettings["UsersImagesUploadFolder"] + CurrentUserLogin +
                               @"\\" + ((GridDataItem) e.Item)["Url"].Text);

string radWindowOpen = "<script type='text/javascript'>window.open('" + completeUrl + "')</" + "script>";
 Page.ClientScript.RegisterStartupScript(this.GetType(), "fileDisplay", radWindowOpen);

我可能错过了一些明显的东西,但我不知道它是什么。

感谢您的回答。

1 个答案:

答案 0 :(得分:2)

正如Damien指出的那样,Server.MapPath用于服务器端路径映射。客户需要在您的网络应用程序下方看到一条路径。

例如:

Page.ResolveUrl("~/uploads/" + ConfigurationManager.AppSettings["UsersImagesUploadFolder"] ...

将解析为http://mydomain/vroot/uploads/...等。

顺便说一句,请注意@"\\"会导致双反斜杠,我认为你并不打算这样做。

@"\""\\"中的任何一个都会产生一个反斜杠。