Возврат двух списков в представление 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());
}
3 ответов
строго введите представление как связанную модель, которая является настраиваемым объектом, содержащим оба списка. Примечание такой объект часто называют "модель представления".
пример:
ваш 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, содержащий эти 2 списка
return View(new MyModel{List1 = list1,List2 = list2});
или
ViewData["List1"] = list1;
ViewData["List2"] = list2;
return View();
посмотрите здесь:http://www.howmvcworks.net/OnViews/BuildingAStronglyTypedView
Я думаю, вы хотите первый.
попробуйте использовать динамический тип, например ViewBag
вы можете получить доступ к @viewbag в Razor View