我想将一些变量从一个页面传递到另一个页面,但我不希望它们出现在URL中。当我使用表单发布ActionResult时,它工作正常。但是,当我这样做时
return RedirectToAction("Trackers",new{page = 1, orderby=desc});
我收到了网址:
http://examplesite.com/Trackers?page=1&orderby=desc
有没有什么办法可以获得以下网址,但仍然会在“幕后”传递页面和orderby变量?
http://examplesite.com/Trackers
由于 TheLorax
答案 0 :(得分:4)
我不确定按照您的建议做一个好主意,但是,您可以使用TempData(与ViewData相同的位置)在重定向之前保存您的信息。我相信在你的下一个请求之后,临时数据中的任何内容都会被清除。
答案 1 :(得分:2)
您可以传递包含页码和orderby而不是匿名对象的Model对象,并让您的视图继承您传递的对象的模型类。具有页码和orderby的模型对象随后可用于视图,而不使用查询字符串
然而,这不是执行此操作的首选方法。您的模型对象应保留用于其预期目的,即将实际数据传递给您的视图。
答案 2 :(得分:1)
当您使用RedirectToAction方法时,浏览器将从服务器接收http重定向响应,然后对新URL发出GET请求。
我认为在重定向时没有办法让浏览器发出POST请求。
最好通过查询字符串传递这些变量,以便用户能够为页面添加书签。