ASP.NET MVC在文件夹中显示多个部分视图

时间:2016-02-22 21:18:18

标签: asp.net-mvc

我将MVC应用程序分解为多个区域。 结构是这样的: 区域> AreaName>意见>各种视图文件夹

我需要在这些名为HelpFiles的视图文件夹中添加一个文件夹,使其结构如下 区域> AreaName>意见>各种视图文件夹>帮助文档

在我的布局页面中,单击时会显示一个图标,它会调用一个控制器方法,该方法将返回HelpFiles文件夹中的所有局部视图并将其显示在div中。

到目前为止我做了什么: 我已经向basecontroller添加了一个方法,如下所示:

polymerCreated()

在返回的视图中,我的代码是这样的:

   public ActionResult ShowHelpText(string viewName)
        {
            var areaName = ControllerContext.RouteData.DataTokens["area"];
            var folderName = "~"+ areaName + viewName + "HelpFiles/";
            ViewBag.Partials = ????
            return View();
        }

我的问题是我无法找到从文件夹中获取所有视图的方法。

我意识到这不是理想的做法,帮助文本应该来自数据库等,但由于CMS服务的关系,我们现在仍然坚持这种结构。

非常感谢任何帮助或指示。

谢谢

1 个答案:

答案 0 :(得分:1)

未经测试的代码,您可能需要进行一些小的更改才能使其正常工作。

//Replace the `~/Content/HelpFiles` to the real path.
ViewBag.Partials = Directory.EnumerateFiles(Server.MapPath("~/Content/HelpFiles")).Select(i => Path.GetFileName(i));

查看:

@foreach (string partial in (IEnumerable<string>)ViewBag.Partials)
{
    @Html.Partial(partial)
}