c# - 如何编写嵌套分组数据的类型C#
问题描述
我对我的数据进行了分组,我想将此数据与模型一起发送到视图。如何将属性写入视图模型
工作计划班
public class WorkPlan:IEntity
{
public int WorkPlanId { get; set; }
public int PlanNumber { get; set; }
public string Day { get; set; }
public string Lesson { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
}
工作计划视图模型
public class WorkPlanViewModel:BaseViewModel
{
public List<WorkPlan> WorkPlans { get; set; }
public WorkPlan WorkPlan { get; set; }
}
行动
public IActionResult Index()
{
WorkPlanViewModel model=new WorkPlanViewModel();
model.Message=new Message();
var allWorkPlan = workPlanService.GetAll();
var groupPlan = allWorkPlan.GroupBy(p => p.PlanNumber)
.Select(p => new {PlanNumber=p.Key, Day= p.GroupBy(b => b.Day).ToList() } ).ToList();
return View(model);
}
groupPlan 是我的分组数据
解决方案
您可以创建一个反映该匿名类型的类并将其作为属性添加到您的视图模型中。
控制器/操作代码 - 请注意new GroupPlan
下面的代码Select
var vm = new MyViewModel();
vm.GroupPlans = allWorkPlan.GroupBy(p => p.PlanNumber)
.Select(p => new GroupPlan { PlanNumber = p.Key, Day = p.GroupBy(b => b.Day).ToList() }).ToList();
GroupPlan 课程
public class GroupPlan
{
public int PlanNumber { get; set; }
public List<IGrouping<string, WorkPlan>> Day { get; set; }
}
视图模型类
public class MyViewModel
{
public List<GroupPlan> GroupPlans { get; set; }
}
推荐阅读
- python - 尝试通过 pip install 安装模块时如何修复“Python 意外退出”?终端崩溃并显示消息“zsh:abort”
- mysql - 从同一个表的多个列中按计数排序
- netsuite - SuiteScript 2.0 Suitelet Sublist with line-specific "Select" options
- laravel - 干预/图像图像源不可读
- python - 在 Qt Creator 项目中嵌入 Python
- algorithm - Q-learning 中的收敛标准
- mysql - 按键统计mysql json中的数据
- python-3.x - Python将输入作为整数列表
- pandas - 清理从网站上抓取的数据并构建干净的 Pandas Dataframe
- flutter - Flutter:我应该使用 Bloc,还是应该使用 redux?