ASP.NET MVC5(保存查询条件和页码)修改|编辑页面后返回之前的页标

ASP.NET MVC5(保存查询条件和页码)修改|编辑页面后返回之前的页标

6106发表于2016-06-10

有时候我们有这种需求,记住编辑之前的查询条件和页码,保存之后要返回到之前的列表页面,并自动加载到之前选择的条件和页码。

比如:我们输入一些查询条件,要编辑的数据在查询结果的第X页。当我们编辑之后也要返回到之前的筛选条件的第X页,而不是返回一到第一页。

这个需求尤其是要编辑多条数据时特别方便。下面就通过ASP.NET mvc5来分享一下我的解决办法。

一、修改功能(跳页)

编辑数据加载Action:

public ActionResult Edit(string ID)
{
	var r = DKeywords.GetModel(ID);
	var site = DSite.GetModel(r.SiteID);
	ViewBag.SiteName = site.Name;
	ViewBag.SiteID = site.UID;
	ViewBag.UrlReferrer = Request.UrlReferrer != null ? Request.UrlReferrer.PathAndQuery : "";//记住前一页面的Url地址
	return View(r);
}
其中:ViewBag.UrlReferrer = Request.UrlReferrer != null ? Request.UrlReferrer.PathAndQuery : "";//


就是要加的页面用来记住之前的Url地址用于将来跳转回去。

在Edit对应的视图Edit.cshtm加一个hidden用来存这个值。

<input type="hidden" value="@ViewBag.UrlReferrer" name="UrlReferrer" />


编辑表单提交后接收Action:

[HttpPost]
public ActionResult Edit(MSite_Keywords model)
{
	var urlReferrer = Request.Params["UrlReferrer"];
	ViewBag.UrlReferrer = urlReferrer;
	DKeywords.Update(model);
	if (!string.IsNullOrEmpty(urlReferrer))
		return Redirect(urlReferrer);
	return RedirectToAction("List", new { ID = model.SiteID });
}

二、删除功能(本页表单提交) 

还有一种操作就是删除,这个比较特殊不会跳页,就在列表页面提交的。

对应视图:

只需要对应Action加如下面代码:


 return Redirect(Request.UrlReferrer.PathAndQuery);


小编蓝狐