簡體   English   中英

將兩個列表返回到視圖c#mvc

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

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