我有一个MVC Web应用程序,我想读取一个XML文件,它会给我一个要显示的图像文件夹/文件列表。
我在使用Visual Studio 2015的Windows 10计算机上本地运行它。在我的控制器中,当我尝试执行以下代码来获取XML文件时,我立即收到错误"The Web server is configured to not list the contents of this directory."
public ActionResult Index()
{
XElement xelement = XElement.Load("~\\Gallery\\Gallery.xml");
IEnumerable<XElement> galleries = xelement.Elements();
return View();
}
然后我做了一些研究,发现我应该将以下内容放在我的web.config文件中。当我这样做并转到View时,它会立即列出我目录中的文件夹。
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
我还关注了一些信息,我选择了IIS,选择了目录浏览,然后启用了#34;。这似乎没有任何影响。
关于我能做什么的任何想法?
答案 0 :(得分:2)
"~\\Gallery\\Gallery.xml"
不被理解为XElement.Load
预期的路径。
您可以使用HostingEnvironment.MapPath
将ASP.NET应用程序路径映射到文件系统路径,因此:
XElement xelement = XElement.Load(HostingEnvironment.MapPath("~\\Gallery\\Gallery.xml"));
答案 1 :(得分:0)
如果其他人遇到同样的问题,我会发布此问题的答案。
问题最终是我有一个名为“Gallery”的控制器以及我网站上名为“Gallery”的文件夹。我的HTML ActionLink正在创建一个超链接而不是。将图像文件夹更改为GalleryImages后,一切正常。
请勿将控制器命名为站点中的文件夹名称。