Pagination ASP.NET MVC 4记住页面索引

Pagination ASP.NET MVC 4记住页面索引,pagination,asp.net-mvc-4,Pagination,Asp.net Mvc 4,在ASP.NETMVC4应用程序中,我有一个带有分页列表的视图(只是一个简单的表,没有telerik网格或类似的东西)。当用户在列表中翻页时,将从数据库中获取新值 在该表中的每一行上都有一个编辑按钮,当单击该按钮时,将显示一个编辑视图,当您在该视图中单击“保存”时,将重定向回带有分页列表的视图 列表视图的URL如下所示 http://localhost/Items/Page/1 http://localhost/Items/Page/2 routes.MapRoute( nam

在ASP.NETMVC4应用程序中,我有一个带有分页列表的视图(只是一个简单的表,没有telerik网格或类似的东西)。当用户在列表中翻页时,将从数据库中获取新值

在该表中的每一行上都有一个编辑按钮,当单击该按钮时,将显示一个编辑视图,当您在该视图中单击“保存”时,将重定向回带有分页列表的视图

列表视图的URL如下所示

http://localhost/Items/Page/1
http://localhost/Items/Page/2
routes.MapRoute(
        name: "ItemsList",
        url :"Items/Page/{page}",
        defaults: new { controller = "Items", action = "Index", page = 1 },
            constraints: new {page = @"\d+"}
        );
路线是这样的

http://localhost/Items/Page/1
http://localhost/Items/Page/2
routes.MapRoute(
        name: "ItemsList",
        url :"Items/Page/{page}",
        defaults: new { controller = "Items", action = "Index", page = 1 },
            constraints: new {page = @"\d+"}
        );
我的问题是:存储引用url的首选、最常用的方法是什么,这样在编辑完一个项目后,我可以将用户重定向回正确的url

http://localhost/Items/Page/2
而不仅仅是

http://localhost/Items
我试过分手

Request.UrlReferrer.PathAndQuery
并存储这些值,然后根据这些值构建url,但我觉得有更好的解决方案来解决这个问题。有什么建议吗

更新

现在我想我可以将urlReferer.PathAndQuery(如果有任何值)作为编辑屏幕的视图模型的属性,然后在决定保存后重定向到哪里时使用它


对这种方法有什么想法吗?

这是我对这个问题的最终解决方案,它不是非常优雅,但很有效。 我在视图模型中添加了一个可以存储url的属性。该值存储在一个隐藏字段中

public class SkillEditModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string RedirectBackToUrl { get; set; }
}
在控制器编辑(GET)方法中,我将值与视图模型一起存储

if (!Request.UrlReferrer == null)
{
    model.RedirectBackToUrl = Request.UrlReferrer.PathAndQuery;
}
最后,在编辑(发布)中保存更改后,我完成了此操作

if (!string.IsNullOrWhiteSpace(model.RedirectBackToUrl))
{
    return new RedirectResult(model.RedirectBackToUrl);
}

return RedirectToAction("Index");

这是我对这个问题的最终解决方案,它不是非常优雅,但它是有效的。 我在视图模型中添加了一个可以存储url的属性。该值存储在一个隐藏字段中

public class SkillEditModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string RedirectBackToUrl { get; set; }
}
在控制器编辑(GET)方法中,我将值与视图模型一起存储

if (!Request.UrlReferrer == null)
{
    model.RedirectBackToUrl = Request.UrlReferrer.PathAndQuery;
}
最后,在编辑(发布)中保存更改后,我完成了此操作

if (!string.IsNullOrWhiteSpace(model.RedirectBackToUrl))
{
    return new RedirectResult(model.RedirectBackToUrl);
}

return RedirectToAction("Index");

页面列表是进入编辑页面的唯一途径吗?您是否会返回到其他控制器/操作?是的,您可以从应用程序中的多个位置进入编辑屏幕。页面列表是进入编辑页面的唯一途径吗?您是否会返回到其他控制器/操作?是的,您可以从应用程序中的多个位置进入编辑屏幕。