我很难理解 MVC4 中的部分视图。我目前有一个用户配置文件页面,我希望有一个部分视图来显示另一个表中包含其用户 ID 的每条记录。
这是我用来在控制器中调用我的函数的 HTML 助手。
@Html.Action("DisplayArticles", "Articles")
这是我在我的文章控制器中调用以显示用户文章的方法。
[HttpGet]
[ChildActionOnly]
public ActionResult DisplayArticles()
{
int id = WebSecurity.CurrentUserId;
var articleList = new List<Article>();
//Article articles = (from j in db.Article
// where j.UserID == id
// select j).ToList();
//articleList.AddRange(articles);
foreach (Article i in db.Article)
{
if (i.UserID == id)
{
articleList.Add(i);
}
}
return PartialView("_DisplayWritersArticle", articleList);
}
我的局部视图 _DisplayWriterArticle 只是使用 HTML 助手来显示数据。
@model Writegeist.Models.Article
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.UserID)
</th>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th>
@Html.DisplayNameFor(model => model.Content)
</th>
</tr>
<tr>
<th>
@Html.DisplayFor(model => model.UserID)
</th>
<td>
@Html.DisplayFor(model => model.Title)
</td>
<td>
@Html.DisplayFor(model => model.Type)
</td>
<td>
@Html.DisplayFor(model => model.Content)
</td>
</tr>
</table>
我的问题是我将列表传递到视图中的方式,它没有被识别并且我得到了错误
> The model item passed into the dictionary is of type
> 'System.Collections.Generic.List`1[Writegeist.Models.Article]', but
> this dictionary requires a model item of type
> 'Writegeist.Models.Article'.
如果我改变
return PartialView("_DisplayWritersArticle", articleList);
至
return PartialView("_DisplayWritersArticle", new Writegeist.Models.Article());
我认为 articleList 的格式不正确。谁能指出我正确的方向?谢谢