局部视图加载错误的模型
本文关键字:模型 错误 加载 视图 局部 | 更新日期: 2023-09-27 18:29:23
我有一个局部视图,其中指定了一个模型:
@model IEnumerable<AbstractThinking2015.Models.BlogModel>
@foreach (var item in Model.Take(5))
{
<li>@Html.ActionLink(item.Title, "Details", new { id = item.BlogModelId })</li>
}
我用来称呼它
<div class="widget">
<h4>Recent Posts</h4>
<ul>
@Html.Partial("View")
</ul>
</div>
但我得到了错误:
传递到字典中的模型项的类型为"AbstractThinking2015.Models.BlogModel",但此字典需要类型的模型项'System.Collections.Generic.IEnumerable'1[AbstractThinking2015.Models.BlogModel]'.
我确信这是因为传递到视图中的模型是单个博客,但我想使用在局部视图中定义的列表。有办法做到这一点吗?
如果不显式地将模型传递给分部,它将采用父视图的模型。因此,从您的错误消息中,很明显,您正在将BlogModel的单个对象从您的操作方法传递到您的视图,从而得到错误。
您需要确保您的主视图(您正在调用分部视图)也是强类型的BlogModel
对象集合。
public ActionResult Index()
{
var blogList=new List<Models.BlogModel>();
// or you may read from db and load the blogList variable
return View(blogList);
}
调用Partial的Index视图将被强类型化为BlogModel
的集合。
@model List<Models.BlogModel>
<h1>Index page which will call Partial</h1>
<div class="widget">
<h4>Recent Posts</h4>
<ul>
@Html.Partial("View")
</ul>
</div>