NavigateUrl分配给treednode

时间:2012-09-26 14:57:24

标签: asp.net treeview

我正在进行树视图,我想在单击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”

目录是本地的,所以我无法访问它。请问这个问题的解决方法是什么。

1 个答案:

答案 0 :(得分:0)

首先,目录的内容必须只在本地提供 - 例如,在IIS中设置的网站根目录下的目录中,或某处的虚拟目录。

其次,您无法通过具有绝对本地路径的网页提供文件 - 您需要将这些网址设置为相对于网站的域名。

因此,原则是采用绝对路径并将其“映射”到虚拟路径或URL,的答案问题在整个地方得到解答here's one for example

ResolveClientUrl在这种情况下不起作用,因为......

  

此方法返回的URL与包含实例化控件的源文件的文件夹相关。

看起来您的文件只是在某个任意目录中(就Web应用程序而言)。

您拥有执行此操作所需的信息,并了解此内容所在的位置以及应用程序公开其自身所在位置的知识(例如,使用请求上下文的ApplicationPath等等上)。