Я использую MVC (в первый раз) с рамками Entity, базами данных первогоMVC - несколько моделей в целях
То, что я хочу сделать, это отображение данные из базы данных в одном представлении. Сначала я создал базу данных, затем создал модель данных Entity Data ADO.NET, основанную на базе данных, содержащей все таблицы. Затем я создал представление индекса, которое было строго типировано с моей моделью данных сущности в качестве модели.
В моем индексе у меня в верхних
@model IEnumerable<Forum6.Models.Forum>
Это позволяет мне получить строки из таблицы «Форум» из моей базы данных. Если я пытаюсь добавить дополнительную модель я получаю сообщение об ошибке, когда я бегу:
Line 1: @model IEnumerable<Forum6.Models.Forum> Line 2: @model2 IEnumerable<Forum6.Models.Post>
Parser Error Message: Only one 'model' statement is allowed in a file.
После поиска ответа я нашел это: Two models in one view in ASP MVC 3 Ответ был создать ViewModel (ParentModel), который содержал все Модели (таблицы). Это ViewModel я создал:
public class ViewModel
{
public IEnumerable<Forum6.Models.Forum> Forum { get; set; }
public IEnumerable<Forum6.Models.Post> Post { get; set; }
public IEnumerable<Forum6.Models.Topics> Topics { get; set; }
public IEnumerable<Forum6.Models.Users> Users { get; set; }
public IEnumerable<Forum6.Models.PrivMsg> PrivMsg { get; set; }
public IEnumerable<Forum6.Models.Permission> Permission { get; set; }
}
Я отредактировал мой контроллер выглядеть следующим образом:
public class HomeController : Controller
{
// ForumDBEntities old_db = new ForumDBEntities();
ViewModel db = new ViewModel();
public ActionResult Index()
{
return View(db);
}
}
Затем заменил старый вид индекса с новым сильно типизированной, который использовал ViewModel в качестве модели. Который содержит:
@model IEnumerable<Forum6.Models.ViewModel>
Попытка запустить это дает мне эту ошибку:
The model item passed into the dictionary is of type 'Forum6.Models.ViewModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[Forum6.Models.ViewModel]
Как сделать "ViewModel" enumarable? Или моя ошибка в другом месте?
проход ViewModel как модель на ваш взгляд: @model ViewModel – Sergio
К сожалению, забыл включить то, что моя точка зрения содержит. Отредактировал мой ответ, чтобы включить. "@model IEnumerable" –
NoClueBlue
Судя по тому, что я вижу, вы уверены, что ваша viewmodel должна быть IEnumerable? Поскольку все элементы внутри, как и в первой попытке. –