【发布时间】:2026-02-13 06:45:01
【问题描述】:
你好朋友,我在 mvc 4 中遇到问题,在 View 中发送动态模型建议我如何将动态模型与视图绑定
这是我的行动
[ChildActionOnly]
public ActionResult TopArticles()
{
var model = from a in db.Articles.Take(3).OrderBy(m=>m.TotalViews)
join u in db.UserProfiles
on a.CreatedBy equals u.ID
join t in db.Tags
on a.TagID equals t.ID
select new
{
Title = a.Title,
ArticleID = a.ArticleID,
FirstName = u.FirstName,
CreatedBy = a.CreatedBy,
TagID = a.TagID,
TagName = t.Name,
CreationDate = a.CreationDate,
TotalViews = a.TotalViews
}; // get Top 3 Articles from Articles
return PartialView(model);
}
这是我的观点
@model IEnumerable<dynamic>
@{
ViewBag.Title = "TopArticles";
}
@foreach(dynamic item in Model)
{
<div class="row about_topviewedarticle1">
<div class="row">
<div class="columns twenty">
<a href="#" class="title">@item.Title</a>
by <a href="#"class="profilefont_eleven">@item.FirstName</a>
</div>
</div>
<div class="row">
<div class="columns twenty">
<label class="font_ten">views: @item.TotalViews posted on : @item.CreationDate</label>
</div>
</div>
</div>
}
当我运行此代码时,出现以下错误
“对象”不包含“标题”的定义
【问题讨论】:
-
你必须制作一个视图模型,例如ArticlesViewModel,它将包含您要显示的 Articles 实体的这一部分。之后在查询中您将...选择新的 ArticlesViewModel { ... }。最后将视图模型传递给视图。