加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC 3中跨请求保持查询字符串

发布时间:2020-12-16 09:22:26 所属栏目:asp.Net 来源:网络整理
导读:我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)“非活动”客户端. showInactive = True作为控制器的查询字符串附加到url.显示“非活动”客户端后,我编辑其中一个,但是当我保存任何更改或返回列表时,查询字符串消失了.在这些请求
我有一个页面,其中包含一个带有ActionLink的客户端列表,允许用户显示(或隐藏)“非活动”客户端. showInactive = True作为控制器的查询字符串附加到url.显示“非活动”客户端后,我编辑其中一个,但是当我保存任何更改或返回列表时,查询字符串消失了.在这些请求中保持查询字符串的最佳方法是什么?我已经尝试过TempData字典,但显然我试图将它用于它不能设计的东西.

解决方法

实现此目的的一种简单方法是在您的操作中添加returnUrl参数,如下所示:

[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,还可以保留列表中可能包含的任何其他参数,例如页码,搜索条件,排序订单等

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读