我想问一下是否可以将多个值传递给SharedLayout View而不生成新类?
例如,
我在开头填写我的共享布局,每次都有一个类别和产品列表。我使用Tuple<object1, object2>
传递它们但是Tuple有最多6个对象,在我的应用程序中我将不得不传递6 ...但我不想生成包含产品,类别,用户列表的新类等等......
还有其他方法吗?
答案 0 :(得分:0)
使用ViewModel
是将数据传递到视图的最佳做法,您似乎拥有使用它的完美候选者,但如果您不想这样做,并且您已经在使用{{1}有一种方法可以通过在元组内嵌套元组将超过7个参数传递给元组。
如果你看一下Tuple
定义:
Tuple
8元组的最后一个元素是泛型类型参数Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>
,它表示定义元组剩余组件类型的任何通用Rest
对象。
这使您可以根据需要创建具有多个参数的元组。
考虑这个16元组的例子:
Tuple
答案 1 :(得分:-1)
您可以使用界面而不是类创建强类型视图。然后,只要它的类型实现了该接口,就可以将任何对象传递给视图。
答案 2 :(得分:-1)
您可以使用ViewBag。
ViewBag.Products = productList;
在你看来
@foreach(var product in (ProductList)ViewBag.Products) {
Html.DisplayFor(x => product);
}