我正在进行树视图,我想在单击treeview目录的文件节点时打开一个文件。我在这里做了什么:
foreach (FileInfo File in currentDir.GetFiles())
{
TreeNode node = new TreeNode(File.Name, File.FullName);
node.SelectAction = TreeNodeSelectAction.SelectExpand;
node.PopulateOnDemand = false;
node.NavigateUrl = ResolveClientUrl(File.FullName);
node.ChildNodes.Add(node);
currentNode.ChildNodes.Add(node);
}
不幸的是,当我检查html时,它会呈现为: HREF = “文件:/// d:/Training%2520Sessions/Enterprise%2520Portal/Zeeshan%2520H%2520Jafry%2520EP%2520session%2520-%2520Jul%252018%25202011%252006.39.15%2520PM.wmv”
目录是本地的,所以我无法访问它。请问这个问题的解决方法是什么。
答案 0 :(得分:0)
首先,目录的内容必须只在本地提供 - 例如,在IIS中设置的网站根目录下的目录中,或某处的虚拟目录。
其次,您无法通过具有绝对本地路径的网页提供文件 - 您需要将这些网址设置为相对于网站的域名。
因此,原则是采用绝对路径并将其“映射”到虚拟路径或URL,的答案问题在整个地方得到解答here's one for example
ResolveClientUrl
在这种情况下不起作用,因为......
此方法返回的URL与包含实例化控件的源文件的文件夹相关。
看起来您的文件只是在某个任意目录中(就Web应用程序而言)。
您拥有执行此操作所需的信息,并了解此内容所在的位置以及应用程序公开其自身所在位置的知识(例如,使用请求上下文的ApplicationPath
等等上)。