簡體   English   中英

在ASP.NET MVC(C#)中返回多個列表

[英]Returning Multiple Lists in ASP.NET MVC (C#)

我是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());
    }

此代碼對於返回單個數據集非常有效。 我遇到的情況是我有一個對象列表,每個對象都有一個對象子集,我希望在輸出頁面的層次結構中顯示這些對象。 我不確定是要尋找快速的方法還是正確的方法,對這兩種途徑的想法將不勝感激。

謝謝!

您可以通過ViewData(一個從控制器傳遞到視圖的對象)傳遞它們。 控制器將如下所示:

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

在視圖中檢索它:

<% foreach (var action in (List)ViewData["ActionList"]) %>

如上所述的ViewData是快速方法。 但我相信將列表包裝在單個對象模型中更有意義,然后將其傳遞給View。 您還將獲得智能感知...

對象的子集可以/應該由Action上的屬性返回(假設db.Actions返回Action對象)。

public class Action 
{

    //...

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

    //...
}

這里沒什么特別的MVC ...

在您看來,您只需遍歷這兩個步驟:

<%
   foreach (Action a in ViewData.Model as IList<Action>) 
   {
       foreach (SubAction sa in a.SubActions)
       {
          // do whatever
       }
   }
%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM