渲染文件夹中的所有部分视图

时间:2014-02-27 06:18:11

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

我有一个包含大约20个不带任何模型的部分视图的文件夹(只是简单的javascript / html)。是否有一种简单的方法来呈现特定文件夹中的所有视图,例如“/ Views / Shared / Forms / ....”?

1 个答案:

答案 0 :(得分:9)

我认为还有另一种方法可以将某个文件夹中的所有Partials渲染到View。但是你可以这样做。 (测试)

控制器

public ActionResult Index()
{
    var folderName = "~/Views/Partials/";
    ViewBag.Partials = GetAllViews(folderName);
    return View();
}

private List<string> GetAllViews(string folderName)
{
    var path = Server.MapPath(folderName);
    var dirInfo = new DirectoryInfo(path);
    return dirInfo.GetFiles().Select(i => folderName + i.Name).ToList();
}

查看

@foreach (string partial in ViewBag.Partials)
{
    //Html.RenderPartial(partial);
    @Html.Partial(partial)
}