我正在尝试在 MVC4 中构建一个 WordPress 版本。目前我正在处理页面视图。我决定在这个视图中我还应该包含一个包含所有其他已创建页面的菜单。这是我的 showPage 视图方法:
public ActionResult showPage(string myTitle)
{
var query = from a in db.Pages
where a.title == myTitle
select a;
PageModels item = new PageModels();
item = query.FirstOrDefault<PageModels>();
if (item != null)
{
return View(item);
}
else
{
item.content = "No page with title :" + myTitle + " found.";
return View(item);
}
}
这是我尝试渲染的部分方法:
public ActionResult List()
{
return View(db.Pages.ToList());
}
这就是我的观点:
@model Dynamic_Web_Pages.Models.PageModels
@{
ViewBag.Title = "Page Preview";
}
@Html.Partial("_ListPartial", new IEnumerable<Dynamic_Web_Pages.Models.PageModels>)
<div class="content">@Html.Raw(Model.content)</div>
最后这是我的部分:
@model IEnumerable<Dynamic_Web_Pages.Models.PageModels>
<div class="dropdown">
@foreach (var page in Model)
{
if(page.parent == 0)
{
<div class="btn-group">
<a class="btn dropdown-toggle" id="@Html.DisplayFor(modelItem => page.id)" role="button" data-toggle="dropdown" data-target="#" href="/@Html.DisplayFor(modelItem => page.title)" >@Html.DisplayFor(modelItem => page.title)
<b class="caret"></b>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="@Html.DisplayFor(modelItem => page.id)">
@foreach (var child in Model)
{
if (child.parent == page.id)
{
<li><a class="child" href="/@Html.DisplayFor(modelItem => child.title)" >@Html.DisplayFor(modelItem => child.title)</a></li>
}
}
</ul>
</div>
}
}
</div>
在我看来,我收到以下错误:
Cannot create an instance of the abstract class or interface 'System.Collections.Generic.IEnumerable<Dynamic_Web_Pages.Models.PageModels>'
@Html.Partial 的第二个参数应该是什么?