[英]Return two lists to the view c# mvc
我有兩個列表,我想返回視圖,'添加'和'刪除'。 但是目前我只能返回'已添加'或'已刪除'。 我怎樣才能在一個對象中返回? 我對MVC很新,所以如果這段代碼很亂,請道歉!
public ActionResult Index()
{
// Excel upload history
var fptexcel = db.FPTStaticDataRatedFinancialAssetBase
.OrderBy(e => e.FORATExcelId)
.Select(e => e.FORATExcelId).Max();
var fptexcelprevious = fptexcel - 1;
var newassets = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(c => c.FORATExcelId == fptexcel || c.FORATExcelId == fptexcelprevious)
.GroupBy(x => x.Name)
.Where(c => c.Count() == 1)
.Select(y => y.FirstOrDefault()).ToList();
var added = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(x => x.FORATExcelId == fptexcelprevious)
.Select(x => x).ToList();
var removed = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataRatedFinancialAssetBase>()
.Where(x => x.FORATExcelId == fptexcel)
.Select(x => x).ToList();
return View(newassets.Except(added).ToList());
}
強烈鍵入您的視圖,使其成為關聯模型,該模型是包含兩個列表的自定義對象。 注意,這樣的對象通常被稱為“viewModel”。
例:
你的viewModel:
public class MyViewModel
{
public List<X> Added { get; set; }
public List<X> Removed { get; set; }
}
你的控制器:
public ActionResult Index()
{
var viewModel = new MyViewModel
{
Added = ...,
Removed = ...
};
return View(viewModel);
}
你的觀點:
@model XXXXX.MyViewModel
...
為什么不讓ViewModel包含這兩個列表
return View(new MyModel{List1 = list1,List2 = list2});
要么
ViewData["List1"] = list1;
ViewData["List2"] = list2;
return View();
看看這里: http : //www.howmvcworks.net/OnViews/BuildingAStronglyTypedView
我想你想要第一個。
嘗試使用像ViewBag這樣的動態類型
您可以在Razor View中訪問@viewbag
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.