У меня есть проект Mvc4 SPA. Я работаю над тем, где мне нужно иметь несколько видов, вложенных друг в друга. Модели просмотра и просмотра связаны с использованием Durandal.Вложение нескольких просмотров ViewModels в Mvc4 и нокаут
В Mvc3 я ранее делал это, используя частичный вид в частичном представлении в представлении и передавая параметры до частичных. Сделав это, я смог иметь множественные частичные отношения по принципу «один ко многим», которые, в свою очередь, имели множественные частичные отображения, отображающие отношения «один ко многим», все связанные с родительским представлением.
Пример ранее использовался в Mvc3 =
Public class ParentsController
{
public ActionResult Parent(int id)
{
Parent parent = Db.Parents.Find(id);
ViewBag.ParentId = parent.Id;
return View(parent)
}
public PartialViewResult Child(int id)
{
Child childs = Db.Childs.Where(w => w.ParentId = id);
return PartialView("ChildPartial", childs.ToList());
}
public PartialViewResult GrandChild(int id)
{
GrandChild grandChilds = Db.GrandChilds.Where(w => w.ChildId = id);
return PartialView("GrandChildPartial", grandChilds.ToList());
}
}
и рассматривает что-то вроде
Parent.cshtml
@{
ViewBag.Title = "Parent";
}
@Html.DisplayFor(Model.ParentName)
@{Html.RenderAction("ChildPartial", new { id = ViewBag.ParentId});}
ChildPartial.cshtml
@{
ViewBag.Title = "Children";
}
{ foreach (var child in childs)
{
@{Html.DisplayFor(child.ChildsName)}
@{Html.RenderAction("GrandChildPartial", new { id = ViewBag.ChildId});}
}}
GrandChildPartial.cshtml
@{
ViewBag.Title = "Grand Children";
}
{ foreach (var grandChild in GrandChilds)
{
@{Html.DisplayFor(grandChild.GrandChildsName)}
}}
Опять же, выше краткий пример шаблона я использовал в прошлом, не нужно помогите с этим.
Я могу использовать Breeze для загрузки детей и отображения детей относительно легко из модели родительского вида, но когда я попадаю в великих детей, мне кажется, что я попадаю в код «спагетти» и слишком сильно загружаюсь из одной модели представления , Я думал, что правильная вещь должна была бы создать модель представления родительского, дочернего и внука, чтобы разделить их и сделать их многоразовыми.
Мой вопрос заключается в том, чтобы модель родительского представления загружала модель представления ребенка, а затем загружала модель представления ребенка в виде большого ребенка или должна быть одна точка зрения, которая складывается и каскадируется от отдельного родителя к ребенку до внука ? Т.е. следует ли один просмотр загрузить 3 модели просмотра отдельно или должна быть выделенная модель родительского представления, которая вызывает все три модели просмотра и загружает их более или менее независимыми друг от друга? Я ищу лучшую практику здесь, поскольку идея SPA относительно нова.
Уорд благодарит за отличные и очень подробные ответы. Я видел еще одно сообщение, ссылающееся на TempHire с использованием UoW. Заинтересованы в этом, и, честно говоря, я все еще чувствую, какие технологии будут работать, поэтому я обязательно буду следить за этим. Я, вероятно, собираюсь поиграть с обоими методами и посмотреть, что лучше всего подходит. –