Asp.net 渲染文件夹中的所有局部视图

Asp.net 渲染文件夹中的所有局部视图,asp.net,asp.net-mvc,asp.net-mvc-3,razor,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,我有一个文件夹,其中包含大约20个没有任何模型的局部视图(只有普通的javascript/html)。是否有一种简单的方法可以渲染特定文件夹中的所有视图,例如“/views/Shared/Forms/…”?我认为没有其他方法可以将特定文件夹中的所有部分渲染到视图中。但是你可以这样做。(测试) 控制器 public ActionResult Index() { var folderName = "~/Views/Partials/"; ViewBag.Partials = GetA

我有一个文件夹,其中包含大约20个没有任何模型的局部视图(只有普通的javascript/html)。是否有一种简单的方法可以渲染特定文件夹中的所有视图,例如“/views/Shared/Forms/…”?

我认为没有其他方法可以将特定文件夹中的所有部分渲染到视图中。但是你可以这样做。(测试)

控制器

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();
}

+1:有意思的问题。您是否尝试列出该文件夹中要列出的所有文件并编写for循环?我不知道你是否有权这么做?只是一个想法。考虑一下,但它需要读取权限,而不是将所有视图名称从控制器传递到视图-希望找到一种更简单的方法来完成
@foreach (string partial in ViewBag.Partials)
{
    //Html.RenderPartial(partial);
    @Html.Partial(partial)
}