Это неправильно: (Ну, это можно сделать так, но я думаю, что вы хотите передать модель)
public ViewResult Index()
{
var journals = db.Journals.AsEnumerable<Journal>();
ViewData["journals"] = journals;
return View();
}
Попробуйте это:
public ViewResult Index()
{
var journals = db.Journals.AsEnumerable<Journal>();
return View(journals); //You just passed journals as a model
}
Также, если вы используете mvc 3, вы можете использовать ViewBag
вместо ViewData
Пример:
ViewData["Journal"] = "my string";
совпадает с
ViewBag.Journal = "my string";
ViewBag
является динамическим, поэтому вы можете использовать точечную запись.
Дополнительно
Этот код:
@model IEnumerable<ErikDemo.Models.Journal>
@foreach (var item in (IEnumerable<ErikDemo.Models.Journal>)ViewData["journals"])
Должно быть так:
@model IEnumerable<ErikDemo.Models.Journal>
@foreach (var item in Model)
Обновление:
Я не уверен, что вы делаете с этим db.Journals.AsEnumerable<Journal>();
У вас должен быть метод, который получает данные из таблицы или таблиц и возвращает Journals
. Допустим, все это происходит из одной таблицы в базе данных:
public class JournalViewModel
{
public IEnumerable<Journals> GetJournals()
{
using(var db = new ErikDataContext())
{
return db.Journals.ToList();
}
}
}
Тогда в действии:
public ViewResult Index()
{
var journals = new JournalsViewModel.GetJournals();
return View(journals); //You just passed journals as a model
}