2010-07-14 16 views
0

我有一個視圖模型 -在asp.net mvc 2.0中重定向到動作時,viewmodel中的對象的值會丟失?

public class MyViewModel 
{ 
    public int id{get;set;}; 
    Public SomeClass obj{get;set;}; 
} 
public class SomeClass 
{ 
    public int phone{get;set;}; 
    public int zip{get;set;}; 
} 

所以我的控制器上,當我回來後MyViewModel它的所有字段的所有值......但是當我做

return RedirectoAction("SomeAction",vm);//where vm->MyViewModel object that has all values... 

它失去了嗎?SomeClass的對象值......任何人都可以請幫我

回答

4

The second argument to RedirectToAction is route values, not a view model.

所以,如果你這樣做:

return RedirectoAction("SomeAction", new {Foo = "Bar"}); 

然後,用默認的模型綁定,你會重定向到該URI:

http://site/ControllerName/SomeAction?Foo=Bar 

記住重定向是如何工作的通過線路。你不能通過一個模型。您可以只有更改URI。

+0

hmm ..所以在這個例子中,我試着做--ZH return RedirectoAction(「SomeAction」,new {vm = vm})並且....... return RedirectoAction 「SomeAction」,新的MyViewModel {idvm.id,obj = new SomeClass {phone = vm.phone,zip = vm.zip})但沒有工作? – Vishal 2010-07-14 19:41:59

+0

我將再次說出這一點,慢慢地說:RedirectToAction **的第二個參數不是視圖模型**它改變了URI。 **這就是全部。** – 2010-07-14 19:44:08

+1

明白了......你可以說「tempdata」緩慢.. :) – Vishal 2010-07-14 20:10:37

相關問題