【问题标题】:Parameters in RedirectToAction don't passed downRedirectToAction 中的参数不向下传递
【发布时间】:2014-05-30 01:28:26
【问题描述】:

我正在尝试将参数传递给我的操作。 我需要传递几个参数。 调试的时候发现,简单类型的参数都是取值的,而我自己的类参数是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"],但我就是不喜欢这种旧方式。

谢谢。

【问题讨论】:

  • TempData["CurrentUser"] 是最常见的方式,但您也可以使用 Server.TransferRequest 进行更复杂的设置
  • 嗨@OleksiiAza,该帖子使用相同的东西 TempData[] 来传递对象

标签: asp.net asp.net-mvc


【解决方案1】:

你没有通过int? page值,应该是这样的

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

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

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

【讨论】:

  • 你好,页面参数可以为空,没关系。我想知道如何传递 MyUser。
猜你喜欢
  • 2011-09-25
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多