C# 部分视图加载错误的模型
我有一个局部视图,其中指定了一个模型:C# 部分视图加载错误的模型,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个局部视图,其中指定了一个模型: @model IEnumerable<AbstractThinking2015.Models.BlogModel> @foreach (var item in Model.Take(5)) { <li>@Html.ActionLink(item.Title, "Details", new { id = item.BlogModelId })</li> } @model IEnumerable @foreach
@model IEnumerable<AbstractThinking2015.Models.BlogModel>
@foreach (var item in Model.Take(5))
{
<li>@Html.ActionLink(item.Title, "Details", new { id = item.BlogModelId })</li>
}
@model IEnumerable
@foreach(模型中的var项目,取(5))
{
@ActionLink(item.Title,“Details”,新的{id=item.BlogModelId})
}
我用以下方式来称呼它:
<div class="widget">
<h4>Recent Posts</h4>
<ul>
@Html.Partial("View")
</ul>
</div>
最近的职位
@Html.Partial(“视图”)
但我得到了一个错误:
传递到字典中的模型项的类型为
“AbstractThinking2015.Models.BlogModel”,但本词典要求
类型的模型项
'System.Collections.Generic.IEnumerable'1[AbstractThinking2015.Models.BlogModel]'
我确信这是因为传递到视图中的模型是单个blog,但我想使用在部分视图中定义的列表。有什么方法可以做到这一点吗?如果不显式地将模型传递给分部,它将采用父视图的模型。因此,从错误消息中可以清楚地看出,您正在从action方法向视图传递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);
}
如果没有将模型t显式传递给分部,它将采用父视图的模型。因此,从错误消息中可以清楚地看出,您正在从action方法向视图传递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);
}
你的主视图渲染是什么?目前它刚刚中断,但它使用的模型是:@Model AbstractThinking2015.Models.blogmodel你的主视图渲染是什么?目前它刚刚中断,但它使用的模型是:@Model AbstractThinking2015.Models.blogmodel这是正确的解释,OP可能在寻找一些东西比如
@Html.Partial(“View”,Model.RecentPosts)
而不是将当前帖子呈现为最近帖子的列表。我同意他应该拥有一个视图模型,该模型具有一个RecentPosts属性,他应该将该属性传递给Partial。从他最初的帖子中,不清楚他试图用索引视图做什么。所以我不知道他真正应该用什么视图模型来创建他的索引视图!虽然这是正确的解释,但OP可能在寻找类似于@Html.Partial(“视图”,Model.RecentPosts)
的内容,而不是将当前帖子作为最近帖子的列表呈现。我同意他应该拥有一个视图模型,该模型具有RecentPosts属性,他应该将该属性传递给Partial。从他最初的帖子中,不清楚他试图用索引视图做什么。所以我不知道他真正应该用什么视图模型来创建他的索引视图!