2

标题

我想将一些变量从一个页面传递到另一个页面,但我不希望它们出现在 URL 中。当我使用表单发布 ActionResult 时,它工作正常。但是,当我这样做时

return RedirectToAction("Trackers",new{page = 1, orderby=desc});

我得到网址:

http://examplesite.com/Trackers?page=1&orderby=desc

有什么方法可以让我获得以下 URL,但仍然在“幕后”传递 page 和 orderby 变量?

http://examplesite.com/Trackers

谢谢 TheLorax

4

3 回答 3

4

我不确定执行您的建议是否是一个好主意,但是,您可以使用 TempData(与 ViewData 相同的位置)在重定向之前保存您的信息。我相信在您的下一个请求之后,临时数据中的任何内容都会被清除。

于 2009-06-14T03:51:26.853 回答
2

您可以传递包含页码和 orderby 的 Model 对象而不是匿名对象,并让您的视图继承您正在传递的对象的模型类。然后,您的带有页码和 orderby 的模型对象将可用于视图,而无需使用查询字符串

但是,这不是执行此操作的首选方法。您的模型对象应保留用于其预期目的,即将实际数据传递到您的视图。

于 2009-06-14T03:33:38.503 回答
1

当您使用 RedirectToAction 方法时,浏览器将收到来自服务器的 http 重定向响应,然后将对新 URL 执行 GET 请求。
我认为没有办法让浏览器在重定向时发出 POST 请求。

此外,最好通过查询字符串传递这些变量,以便用户能够为页面添加书签。

于 2009-06-14T03:20:43.997 回答