asp.net mvc强类型重定向与modelbinded输入参数

时间:2011-07-05 15:56:38

标签: asp.net-mvc redirect query-string strong-typing

我的控制器里面有很多动作方法,每个方法都有自己的模型绑定为输入参数es。:

[HttpGet]
public MyActionMethod(MyCustomModel data){
...
}

...

public class MyCustomModel{
    public int total {get;set;}
    public string description {get;set;}
}

现在,如果我尝试调用方法传递正确的查询字符串参数集来构成MyCustomModel,一切都按预期工作。 如果我使用以下方法从另一个action方法重定向到action方法:

RedirectToAction("MyActionMethod", new { total=10, description="test"});

它也可以按预期工作。

问题在于我想要实现某种类型的强类型重定向:

RedirectToAction(c => c.MyActionMethod, new MyCustomModel{total=10, description="test"});

使用MvcContrib提供的扩展方法可以获得类似的东西但不幸的是,由于某种原因,扩展无法在查询字符串中组成正确的参数集,最终会出现错误的请求。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以做到

TempData["MyCustomModel"] = new MyCustomModel{total=10, description="test"});

然后

MyCustomModel model = TempData["MyCustomModel"] as MyCustomModel

在被重定向到的动作方法中。