如何在MVC 3中实现跨请求保持查询字符串的技巧?

2026-03-30 12:491阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计353个文字,预计阅读时间需要2分钟。

如何在MVC 3中实现跨请求保持查询字符串的技巧?

我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)非活跃客户端。通过设置showInactive=True作为控制器的查询字符串,将查询字符串附加到url。显示非活跃客户端后,我编辑其中一项。

我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)“非活动”客户端. showInactive = True作为控制器的查询字符串附加到url.显示“非活动”客户端后,我编辑其中一个,但是当我保存任何更改或返回列表时,查询字符串消失了.在这些请求中保持查询字符串的最佳方法是什么?我已经尝试过TempData字典,但显然我试图将它用于它不能设计的东西. 实现此目的的一种简单方法是在您的操作中添加returnUrl参数,如下所示:

如何在MVC 3中实现跨请求保持查询字符串的技巧?

[HttpPost] public ActionResult Edit(int id, ClientEditModel model, string returnUrl) { if (!ModelState.IsValid) return View(); try { // do something return Redirect(returnUrl); } catch { return View(); } }

然后在您的视图中,您可以这样调用您的操作:

@Html.ActionLink("Edit", "Edit", new { id = Model.Id, returnUrl = Request.RawUrl })

在此设置中,当用户完成编辑后,她将被带回到与之前相同的位置,不仅仅持有showInactive,还可以保留列表中可能包含的任何其他参数,例如页码,搜索条件,排序订单等

本文共计353个文字,预计阅读时间需要2分钟。

如何在MVC 3中实现跨请求保持查询字符串的技巧?

我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)非活跃客户端。通过设置showInactive=True作为控制器的查询字符串,将查询字符串附加到url。显示非活跃客户端后,我编辑其中一项。

我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)“非活动”客户端. showInactive = True作为控制器的查询字符串附加到url.显示“非活动”客户端后,我编辑其中一个,但是当我保存任何更改或返回列表时,查询字符串消失了.在这些请求中保持查询字符串的最佳方法是什么?我已经尝试过TempData字典,但显然我试图将它用于它不能设计的东西. 实现此目的的一种简单方法是在您的操作中添加returnUrl参数,如下所示:

如何在MVC 3中实现跨请求保持查询字符串的技巧?

[HttpPost] public ActionResult Edit(int id, ClientEditModel model, string returnUrl) { if (!ModelState.IsValid) return View(); try { // do something return Redirect(returnUrl); } catch { return View(); } }

然后在您的视图中,您可以这样调用您的操作:

@Html.ActionLink("Edit", "Edit", new { id = Model.Id, returnUrl = Request.RawUrl })

在此设置中,当用户完成编辑后,她将被带回到与之前相同的位置,不仅仅持有showInactive,还可以保留列表中可能包含的任何其他参数,例如页码,搜索条件,排序订单等