Возвращение нескольких списков в ASP.NET MVC (C #) - PullRequest
0 голосов
/ 27 января 2009

Я несколько новичок в архитектуре ASP.NET MVC и пытаюсь разобраться, как я могу вернуть несколько наборов данных в представление.

    public ActionResult Index(string SortBy)
    {
        var actions = from a in dbActions.Actions
                       orderby a.action_name
                       ascending
                       select a;
        return View(actions.ToList());
    }

Этот код очень хорошо работает для возврата одного набора данных. У меня есть ситуация, когда у меня есть список объектов, каждый из которых имеет подмножество объектов, которые я хочу отобразить в иерархии на странице вывода. Я не уверен, ищу ли я быстрый путь или правильный путь, мысли по обоим направлениям были бы очень признательны.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 28 января 2009

Вы можете передать их через ViewData, объект, который передается из контроллера в представление. Контроллер будет выглядеть так:

ViewData["ActionList"] = actions.ToList();

Получение его в виде:

<% foreach (var action in (List)ViewData["ActionList"]) %>
1 голос
/ 02 февраля 2009

ViewData, как описано выше, является быстрым способом. Но я полагаю, что имеет смысл заключить списки в единую объектную модель, которую вы затем передаете в представление. Вы также получите intellisense ...

0 голосов
/ 28 января 2009

Это подмножество объектов может / должно быть возвращено свойством в Action (при условии, что db.Actions возвращает объекты Action).

public class Action 
{

    //...

    public IEnumerable<SubAction> SubActions 
    {
         get { return do-what-ever; }
    }

    //...
}

Ничего особенного MVC'ish здесь ...

По вашему мнению, вы просто просматриваете оба:

<%
   foreach (Action a in ViewData.Model as IList<Action>) 
   {
       foreach (SubAction sa in a.SubActions)
       {
          // do whatever
       }
   }
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...