我有一个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文件中。当我这样做并转到视图时,它会立即列出我的目录中的文件夹。
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>我还跟踪了一些信息,我转到了IIS,选择了目录浏览,然后选择了“启用”。这似乎没有任何效果。
你知道我能做些什么吗?
错误消息

发布于 2017-02-25 10:11:01
XElement.Load不会将"~\\Gallery\\Gallery.xml"理解为您想要的路径。
您可以使用HostingEnvironment.MapPath将ASP.NET应用程序路径映射到文件系统路径,因此:
XElement xelement = XElement.Load(HostingEnvironment.MapPath("~\\Gallery\\Gallery.xml"));发布于 2017-02-28 00:59:44
我发布了这个问题的答案,以防其他人遇到同样的问题。
问题是我有一个名为"Gallery“的控制器,以及我的站点中有一个名为"Gallery”的文件夹。我的超文本标记语言ActionLink创建了一个超链接,而不是。一旦我将图像文件夹更改为GalleryImages,那么一切都会正常工作。
不要将控制器的名称与站点中的文件夹名称相同。
https://stackoverflow.com/questions/42451006
复制相似问题