在mvc中使用RedirectToAction()传递多个对象?

时间:2014-11-20 14:41:52

标签: c# asp.net-mvc razor

这有效:

 return RedirectToAction("Someplace", object1);

但是当我这样做时:

return View("Someplace", new { object1 = Object1, object2 = Object2 }); 

其中一个对象被删除。

已经尝试将它包装到一个新类中,但它也不起作用。

不想使用会话变量或TempData

2 个答案:

答案 0 :(得分:2)

你已经尝试了类似这样的东西,并且你的视图中的object2为空?

var vm = new YourViewModel();
vm.FirstObject = Object1;
vm.TheNextObject = Object2;
return View("Someplace", vm); 

答案 1 :(得分:1)

执行此操作的最佳方法是创建一个新类,称为ViewModel。所以像这样:

public class SomeplaceViewModel()
{
    public object Object1 {get;set;}
    public object Object2 {get;set;}
}

然后在你的控制器中:

var viewModel = new SomeplaceViewModel()
{
     Object1 = object1,
     Object2 = object2
};
return View("Someplace", viewModel);

最后,在您的视图中,您可以通过在视图文件的顶部插入模型来使用模型:

@model SomeplaceViewModel