我有两个控制器:AliceController和BobController。每个都包含Index操作方法。视图模型很简单,如下:
class Foo{[Required]public int data{get;set;}}如何将强类型对象从Alice传递给Bob?
class AlliceController: Controller
{
[HttpPost]
public ActionResult Index(Foo foo)
{
if(ModelState.IsValid)
{
// I want to pass foo to Bob's Index. How to do it?
return RedirectToAction("Index","Bob");
}
else return View();
}
}发布于 2011-02-03 19:02:43
在理论上中,您可以将RouteValueDictionary参数用于RedirectToAction
return RedirectToAction("Index", "Bob", new { param = value });但是,你不能通过这种类型的重定向传递object*,只能传递可以附加到GET url上的原语类型(,string等)。
请改用TempData。
话虽如此,我不知道你想要做什么。
以下是一些问题:
为什么不传递实际的值,而不是在控制器之间重定向整个ViewModel?
发布于 2011-02-03 19:00:53
难道不能只实例化一个索引并返回它的BobController方法的结果,传入Foo吗?
发布于 2011-02-03 19:01:10
我不确定您是否可以通过重定向传递强类型的对象。
您可以只传递参数
RedirectToAction( new RouteValueDictionary(
new{
controller = "Blah",
action = "Blah",
foo = "Bar"
}
));https://stackoverflow.com/questions/4885250
复制相似问题