[英]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.