C# 将匿名模型传递到MVC网格

C# 将匿名模型传递到MVC网格,c#,asp.net-mvc,asp.net-mvc-4,razor,grid,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Grid,我正在使用网格MVC生成一个表,该表自动从模型生成列。将有多个模型显示不同的数据集,但我希望保持页面使用相同,例如/AMUK/Global?Table=操作或/AMUK/Global?Table=小时 在我的razor页面中,我定义了网格 @Html.Grid(Model.cockpitData).AutoGenerateColumns().Named("projectGrid").WithMultipleFilters() 我希望能够将不同的模型传递到网格,这取决于选择了哪个“报告”。因此,

我正在使用网格MVC生成一个表,该表自动从模型生成列。将有多个模型显示不同的数据集,但我希望保持页面使用相同,例如/AMUK/Global?Table=操作或/AMUK/Global?Table=小时

在我的razor页面中,我定义了网格

@Html.Grid(Model.cockpitData).AutoGenerateColumns().Named("projectGrid").WithMultipleFilters()

我希望能够将不同的模型传递到网格,这取决于选择了哪个“报告”。因此,它可能不是驾驶舱数据,而是actionData。我可以用匿名类型执行此操作吗?或者它必须是静态类型的吗?

您可以使用反射获取属性值,并在网格方法中传递它

public static object GetValueOfProperty(object sourceObject, string propertyName)
{
    return src.GetType().GetProperty(propertyName).GetValue(sourceObject, null);
}
像这样使用它

@Html.Grid(GetValueOfProperty(Model, Table)).AutoGenerateColumns().Named("projectGrid").WithMultipleFilters()
假设表将保存表查询字符串的值