导航时保持url参数

时间:2011-05-20 18:53:45

标签: asp.net-mvc

我对控制器的索引操作采用了如下的页面参数:

/Organizations/Index?page=5

用于限制显示的对象数量。如果他们在完成后选择“编辑”其中一个对象,我希望返回与开始编辑之前相同的值(例如,在列表的相同“页面”上)。

我的编辑网址最终看起来像这样:

/Organizations/Edit/487

如何保留原始页面值?

谢谢!

2 个答案:

答案 0 :(得分:5)

要在可以使用的呼叫之间保留数据

  • 会话状态,
  • 隐藏的字段,
  • 将其作为查询字符串呈现在链接中
  • 使用cookie或
  • TempData(会话状态仅保留用于下次调用)。

如果要访问路径数据,可以使用控制器上下文:

ControllerContext.RouteData.Values["action"];

“action”是路径参数的名称。

答案 1 :(得分:2)

我找到了两个选项:

1)始终使用Source GET参数。像这样: /组织/编辑/ 487?源= /组织/索引?页= 5

这里的问题是网址变得丑陋。

2)你可以做slfan使用hdden字段所说的内容(我不喜欢使用Session)。首次进入编辑视图时,捕获HttpContext.Current.Request.UrlReferrer属性并将其保存到隐藏字段。这样,如果您执行大量POST,则不会丢失原始UrlReferrer,即带有page参数的url。