Asp.net 渲染文件夹中的所有局部视图
我有一个文件夹,其中包含大约20个没有任何模型的局部视图(只有普通的javascript/html)。是否有一种简单的方法可以渲染特定文件夹中的所有视图,例如“/views/Shared/Forms/…”?我认为没有其他方法可以将特定文件夹中的所有部分渲染到视图中。但是你可以这样做。(测试) 控制器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
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)
}