2010-07-14 17 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

相关问题