【问题标题】:Rendering all partial views in folder渲染文件夹中的所有部分视图
【发布时间】:2014-02-27 06:18:10
【问题描述】:

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

【问题讨论】:

  • +1:有趣的问题。您是否尝试过将该文件夹中的所有文件列出到 list 并编写一个 for 循环?我不知道您是否有权这样做?只是一个想法。
  • 考虑过,但它需要读取权限,而不是将所有视图名称从控制器传递到视图 - 希望找到一种更简单的方法来做到这一点

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


【解决方案1】:

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

控制器

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2015-12-31
    • 2023-04-07
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多