我不知道我是否正确地问这个问题,但我会尽我所能解释并提供代码。将视图模型列表合并为一个
我在控制器上有一个ActionResult,它循环遍历每年可用的内容,打印出每个年份ID的结果,并循环直到完成,然后生成最终产品。
我遇到的问题是排序功能。它每年都会排序,而不是整个表格。我想到了解决这个问题的最简单方法,所以它只是一个模型而不是多个按年分隔的模型,以某种方式将列表合并成一个模型。
我对C#MVC很新,所以任何有用的提示,技巧和示例都将非常有帮助。另外,如果您需要任何其他代码,请询问我将提供它。
控制器
// list of models, because you want ALL of them
var managementModels = new List<CollectionsManagementViewModel>();
var setupIds = _repository.GetAllYearSetupIds();
foreach (var setupId in setupIds)
{
// new model created for each setup id
var managementModel = _repository.GetOverdueBalances(type,page, pageLength,
setupId.YearSetupId, balancefilter,
sort, direction == Constants.ascending,
spreadsheetType);
managementModel.Title = title + " Management";
managementModels.Add(managementModel); // add model to list
}
// pass collection to view
return View("CollectionsManagement", new OverpayViewModel { CollectionsManagementViewModels = managementModels});
编辑 我有我的观点一个表,通过点击哪些列进行排序。目前,当选择列名时,对所有内容进行排序,但保留多年,例如2015年的4,5,6分类为4,5,6。然后在2016年,你有1,2,3,当你从那列中排序时,它不会对它进行排序1,2,3,4,5,6它对它进行排序,4,5,6,1,2,3因为它每年都会分类,而不是整个表格。
谢谢,我会根据需要编辑我的问题。这段代码非常优雅。 – CheezStix