【发布时间】:2011-09-24 14:54:59
【问题描述】:
我想在一个视图中使用两个模型并查看了父视图模型。
我有两个模型:
public class Blogg
{
public int ID { get; set; }
public string Blogg_name { get; set; }
public string Message { get; set; }
public string Blogg_subject { get; set; }
private DateTime _Blogg_date = DateTime.Now;
public DateTime Blogg_date
{
get
{
return _Blogg_date;
}
set
{
_Blogg_date = value;
}
}
}
和
public class Dish
{
public int ID { get; set; }
public string Title { get; set; }
public string MainIngredient { get; set; }
public string Cooking { get; set; }
public string Drink { get; set; }
public string Ingredient { get; set; }
public string Type { get; set; }
}
这是我的父视图模型:
public class DishBlogg
{
public Blogg Blogging { get; set; }
public Dish Dishing { get; set; }
}
如何在我的视图 (Home/index.cshtml) 中显示结果?这不起作用:
@model IEnumerable<XXXXXX.Models.DishBlogg>
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.Blogging.Blogg_date)
@Html.DisplayFor(modelItem => item.Blogging.Blogg_subject)
@Html.DisplayFor(modelItem => item.Blogging.Blogg_name)
@Html.DisplayFor(modelItem => item.Blogging.Message)
}
我可以用这个(当然)展示一个模型:
@model IEnumerable<XXXXXX.Models.Blogg>
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.Blogg_date)
@Html.DisplayFor(modelItem => item.Blogg_subject)
@Html.DisplayFor(modelItem => item.Blogg_name)
@Html.DisplayFor(modelItem => item.Message)
}
但是我如何显示两者(使用 DishBlogg)?
我收到此错误:传入字典的模型项的类型为“System.Data.Entity.Infrastructure.DbQuery1[XXXX.Models.Blogg]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[XXXX.Models.DishBlogg]”
编辑:
这里是 HomeController 的索引,我从数据库中挑选出最后一篇文章。我想对这道菜做同样的事情,并在同一个视图中呈现两者
public ActionResult Index()
{
var lastblogg = db.Bloggs.OrderByDescending(o => o.ID).Take(1);
return View(lastblogg);
}
【问题讨论】:
-
你能分享一些你的控制器代码吗?将模型传递给视图的部分。
-
@siride:如果您发现拼写错误,只需编辑问题。没有必要这么粗鲁恕我直言
-
@Smasher:我不认为我是粗鲁的......
标签: c# asp.net-mvc asp.net-mvc-3 viewmodel