【问题标题】:Server.MapPath and window.open()Server.MapPath 和 window.open()
【发布时间】:2012-11-17 13:07:02
【问题描述】:

我实际上正在开发一个应用程序,该应用程序为用户提供了上传他们想要的文件的可能性。这些文件在上传后也应该是可视化的。

为了做到这一点,我尝试使用 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);

我可能遗漏了一些明显的东西,但我不明白它是什么。

感谢您的回答。

【问题讨论】:

  • Server.MapPath 为您提供服务器上的物理路径。将此方法的结果分配给一个名为 completeUrl 的变量充其量似乎是一种误导,并且可能是您困惑的开始。
  • 所以你建议把 Server.MapPath 方法和 all 直接作为参数?
  • 不,我的建议是,如果您想向客户退货,Server.MapPath 可能根本不是解决方案的一部分。

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


【解决方案1】:

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

例如:

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

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

顺便说一句,还要注意@"\\" 会导致双反斜杠,我认为您不是有意的。

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

【讨论】:

  • 好的,现在我明白了,它按预期工作。我实际上完全没有抓住重点。谢谢。
猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 2013-02-24
  • 2014-01-11
  • 2013-10-11
相关资源
最近更新 更多