我将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服务的关系,我们现在仍然坚持这种结构。
非常感谢任何帮助或指示。
谢谢
答案 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)
}