2011-03-28 26 views
1

我在控制器A和使用redirectToRoute去控制器B在那裏我傳遞了兩個對象參數,但我注意到這些值是零上redirection.RedirectToRoute不允許對象的傳球???? ?RedirectToRoute與參數的對象

+0

你可以發佈你是如何做的代碼? – BlackTigerX 2011-03-28 14:50:04

回答

4

當重定向你只能通過簡單的標值,而不是複雜的對象。例如:

public ActionResult Index() 
{ 
    SomeModel model = ... 
    return RedirectToAction("Foo", new 
    { 
     Prop1 = model.Prop1, 
     Prop2 = model.Prop2, 
     Prop3 = model.Prop3, 
    }); 
} 

public ActionResult Foo(SomeModel model) 
{ 
    // model.Prop1, model.Prop2 and model.Prop3 will be correctly bound here 
    ... 
} 

另一種可能性是將對象持久化到數據存儲區,並通過唯一對應的ID:

public ActionResult Index() 
{ 
    SomeModel model = ... 
    string id = Repository.Save(model); 
    return RedirectToAction("Foo", new { id = id }); 
} 

public ActionResult Foo(string id) 
{ 
    // fetch the model from repository: 
    SomeViewModel model = Repository.Load(id); 
    ... 
}