传递RedirectToAction中的参数不会传递下来

时间:2014-05-29 17:14:02

标签: asp.net asp.net-mvc

我正在尝试将参数传递给我的Action。 我需要传递几个参数。 在调试时,我发现简单类型的参数得到了它们的值,而我自己的类参数是null。

return RedirectToAction("Histories", new {MyUser = user, sortOrder = "name_desc" }); 

这是Action方法:

   public ActionResult Histories(ApplicationUser MyUser, string sortOrder, int? page)

我做了一项研究并发现,似乎只有可以序列化的对象才能传递下去。

所以我只是在我的ApplicationUser类上添加了一个注释[Serializable],它不起作用。

所以我想知道传递我的物品的最佳做法是什么?

我当然知道我可以将MyUser放入Session [“CurrentUser”],但我不喜欢这种旧时尚。

谢谢。

1 个答案:

答案 0 :(得分:0)

你还没有通过int?页面值,应该是这样的

return RedirectToAction("Histories", new {MyUser = user, 
           sortOrder = "name_desc", 
           page =1 });

或者你需要像这样使用默认参数值

public ActionResult Histories(ApplicationUser MyUser,
     string sortOrder, 
     int? page = 1)