传递匿名对象进行查看

Dot*_*row 8 asp.net-mvc asp.net-mvc-3

我想将两个值从控制器动作传递到asp.net MVC 3 Razor视图.我在行动方法中这样做:

var model = new { reportid = rid, refno = refernumber};
return View(model );
Run Code Online (Sandbox Code Playgroud)

但当我尝试在这样的视图中访问它:

@Model.reportid
Run Code Online (Sandbox Code Playgroud)

我知道,对象不包含属性reportid

如何在不使用viewbag的情况下传递多个值?

rou*_*uen 17

好吧,我强烈建议你使用ViewModel类.但是如果由于某种原因你有额外的viewmodel类的恐惧症,你可以使用名为Tuple的 C#功能

var model = Tuple.Create(firstObject, secondObject)
Run Code Online (Sandbox Code Playgroud)

然后你的视图将是Tuple类型

@model Tuple<int, string>
Run Code Online (Sandbox Code Playgroud)

你可以像这样访问它们

@Model.Item1
Run Code Online (Sandbox Code Playgroud)

然后你可以祝贺你自己,你已经实现了隐藏意义的好混乱:)

  • 我喜欢这么难看的东西怎么这么漂亮:) (2认同)