Я только что закончил 2 представления, вставку и индексный указатель, и я должен сказать, что нелегко иметь дело с несколькими таблицами. «Вставить» было проще, я просто должен был добавить 2 разных таблиц:MVC 5 Viewmodel и несколько таблиц
[HttpPost]
public ActionResult Index(CustPlayerVM custPlayer)
{
var Cust = new Cust()
{
CustID = custPlayer.CustID,
Color = custPlayer.Color
};
var Player = new Player()
{
PlayerName = custPlayer.PlayerName
};
db.Custs.Add(Cust);
db.Players.Add(Player);
db.SaveChanges();
return View();
}
Проблема заключается в том, что у меня были все виды ошибок со списком <> и IEnumberable <> пытается закодировать вид. Либо вы получаете ужасный «элемент модели, переданный в словарь, либо тип», либо нулевую ссылку в представлении, когда был обработан цикл «foreach». Это было чудо, что это сработало, но я не могу сказать, почему. Вот почему я поставил вопрос для начала. Вот что «вид» выглядит следующим образом:
public ActionResult List()
{
ViewBag.Message = "custPlayer";
//CustPlayerVM vm = new CustPlayerVM();
List<object> vm = new List<object>();
vm.Add(db.Custs.ToList());
vm.Add(db.Players.ToList());
ViewBag.PlayerCnt = db.Players.Count();
return View(vm);
}
Обратите внимание на список (в отличие от ViewModel, что закомментирована). И это Вид:
@model IEnumerable<object> @{
List<viewModelA.Cust> lstCust = Model.ToList()[0] as List<viewModelA.Cust>;
List<viewModelA.Player> lstPlayer = Model.ToList()[1] as List<viewModelA.Player>; }
@Html.ActionLink("Create New", "Create") </p> <table class="table">
<tr>
<th>
@Html.Raw("Color")
</th>
<th>
@Html.Raw("CustID")
</th>
<th>
@Html.Raw("ID")
</th>
<th>
@Html.Raw("Player Name")
</th>
<th>
@Html.Raw("PlayerID")
</th>
</tr>
@for (int i = 0; i < ViewBag.PlayerCnt; i++)
{
<tr>
<td>@lstCust[i].Color</td>
<td> @lstCust[i].CustID</td>
<td> @lstCust[i].ID </td>
<td> @lstPlayer[i].PlayerName </td>
<td> @lstPlayer[i].ID</td>
</tr>
} </table>
мне пришлось обернуть цикл вокруг кода, так как Еогеасп побежал для каждой таблицы отдельно.
В будущем, как вы должны иметь дело с IEnumerable против анонимных типов? Это не должно быть так сложно, правильно?