我试图在MVC3上得到一个agrip,但是在一个视图模型上失败了,这个视图模型应该显示一个列表,但是经常会遇到字典错误。
传递到字典中的模型项为"marc_bew_online.ViewModels.StellenlisteViewModel",类型,但此字典需要一个类型为"System.Collections.Generic.IEnumerable`1marc_bew_online.ViewModels.StellenlisteViewModel".的模型项。
下面是我的存储库的代码:
public class Stellenbeschr_Repo : IStellenBeschrRepository
{
marc_bew_entities db = new marc_bew_entities();
public IEnumerable<STELLENBESCHREIBUNGEN> ListAktuell()
{
DateTime dt1 = new DateTime(2011, 1, 1);
var stelleBeschreibungAbDatum = (from stellebeschreibung in db.STELLENBESCHREIBUNGEN
where DateTime.Compare((DateTime)stellebeschreibung.VON_DATUM, dt1) >= 0
select stellebeschreibung).ToList();
return stelleBeschreibungAbDatum;
}
}控制器+ ViewModel:
private IStellenBeschrRepository _repository;
public Default1Controller()
: this(new Stellenbeschr_Repo())
{
}
public Default1Controller(IStellenBeschrRepository repository)
{
_repository = repository;
}
#endregion
public ActionResult Index()
{
return View(_repository.ListAktuell());
}
public ActionResult Stellenliste()
{
var viewModels = new StellenlisteViewModel { StellenListe = _repository.ListAktuell() };
return View(viewModels);
}
public class StellenlisteViewModel
{
public IEnumerable<STELLENBESCHREIBUNGEN> StellenListe { get; set; }
}视图页摘录:
@foreach(var item in Model.StellenListe)
{
<tr>
<td>
@Html.Display(item.STELLENBESCHREIBUNG);
</td>
</tr>
}对于LINQ表达式找到的每一项,视图页当前都显示";“
我只是找不到一个解决方案来使列表在我的视图中显示。
发布于 2012-03-05 11:20:06
问题很可能是视图代码。
确保您的模型声明为:
@model StellenlisteViewModel而不是:
@model IEnumerable<StellenlisteViewModel>编辑
从它的声音,你可能是混淆了一些事情。
您的页面将有一个单一的视图模型。在此视图中,模型将是您想要显示的STELLENBESCHREIBUNGEN列表。
要做到这一点,首先要确保视图页接受单个视图模型:
@model StellenlisteViewModel其次,您希望在存储库中添加一个ToList()调用:
var stelleBeschreibungAbDatum = (from stellebeschreibung in db.STELLENBESCHREIBUNGEN
where DateTime.Compare((DateTime)stellebeschreibung.VON_DATUM, dt1) >= 0
select stellebeschreibung).ToList();第三,视图页面将如下所示:
@model StellenlisteViewModel
foreach(var item in Model.StellenListe)
{
// output each individual item to the page
// here you can access the individual properties on your STELLENBESCHREIBUNGEN, e.g.:
<span>@item.Description</span>
}对不起,我目前无法访问MVC3,因此无法检查语法。
EDIT#2
您使用Display不正确。您可能希望检查一下文档。
这也就像你正在寻找的DisplayFor()一样。
https://stackoverflow.com/questions/9565668
复制相似问题