我希望在控制器操作中将两个值传递到ASP.NET MVC 3 Razor视图。我在操作方法中这样做:
var model = new { reportid = rid, refno = refernumber};
return View(model );
但是当我像这样在视图中尝试访问它时:
@Model.reportid
我理解,对象不包含属性reportid
我该如何传递多个值而不使用viewbag ?
我希望在控制器操作中将两个值传递到ASP.NET MVC 3 Razor视图。我在操作方法中这样做:
var model = new { reportid = rid, refno = refernumber};
return View(model );
@Model.reportid
我理解,对象不包含属性reportid
我该如何传递多个值而不使用viewbag ?
我强烈推荐您使用ViewModel类。但是,如果出于某种原因您害怕使用额外的ViewModel类,您可以使用C#特性,称为Tuple
var model = Tuple.Create(firstObject, secondObject)
然后你的视图将会成为元组类型,例如
@model Tuple<int, string>
你可以像这样访问它们
@Model.Item1
然后你可以恭喜自己,你已经成功创造了一个带有隐含含义的美好混乱 :)
另一种完成此任务的方法是使用 ExpandoObject
。
dynamic model = new System.Dynamic.ExpandoObject();
model.reportid = 123
model.refno = 456;
将视图模型类型设置为dynamic
:
@model dynamic
@Model.reportid
@Model.refno