C# 在ASP.NET MVC中实现后退按钮

C# 在ASP.NET MVC中实现后退按钮,c#,javascript,jquery,asp.net-mvc-5,asp.net-routing,C#,Javascript,Jquery,Asp.net Mvc 5,Asp.net Routing,我面临在ASP.NET MVC应用程序中实现后退按钮功能的问题。 这是我的主页视图,为了简单起见,让我们考虑它有一个div,它具有IMG元素和div,它呈现了部分视图。PartialView2是一个局部视图,它根据模型中的数据生成平铺列表 View1: <div> remainig page content </div> <div> <img src="/path/to/img_back" id="img" /> <d

我面临在ASP.NET MVC应用程序中实现后退按钮功能的问题。
这是我的主页视图,为了简单起见,让我们考虑它有一个div,它具有IMG元素和div,它呈现了部分视图。PartialView2是一个局部视图,它根据
模型中的数据生成平铺列表

View1:
<div> remainig page content </div>
    <div>
    <img src="/path/to/img_back" id="img" />
    <div id="1">
    Html.RenderAction("PartialView2", "Home");
    </div>
    </div>
<div> remainig page content </div> 


PartialView2:
@model ICollection<Model>
@{
foreach(item in Model) {
<div class="tile">
<!-- tiles data generated using model data that I get from controller --> 
</div>
}
}
在这种设计中,我只有遍历子对象并将它们表示为平铺的选项,但我需要实现一个后退按钮以便遍历父对象。我已经在主控制器中创建了一个堆栈,并为每次调用
GetTiles()
方法将元素推送到堆栈中。但对于控制器的每次调用,都会实例化一个新堆栈。因此,我的想法是将模型集合放在堆栈中,并在每次回调按钮时弹出
模型集合
并将其返回到视图中,这是行不通的

你们能帮我解决这个问题吗?是否有内存中的数据结构用于保存父模型?
如果需要提供更多信息,请告诉我。

实现“返回”行为通常是一种客户端解决方案(例如,使用Ajax加载页面和类似History.js的内容,或仅使用HTML5浏览器状态管理来操作浏览器URL)。您不能在服务器端执行此操作,因为页面加载是无状态的。您甚至需要使用cookie或其他隐藏状态信息(例如,嵌入在页面中)来尝试此服务器端。谢谢您的回复。在这里,我只更新了页面的一小部分(只有一个div),你能告诉我关于使用浏览器历史记录获取特定div内容的更多细节吗?看看history.js的演示,它将展示如何动态更改浏览器地址和响应地址更改。在较旧的浏览器上,它会更改地址
#
书签,但
History.js
会隐藏该实现细节并在所有浏览器上运行。@Neel我已经开始编码,因为纽约没有外来攻击。:)
//field
private Stack<ICollection<Model>> myStack = new Stack<ICollection<Model>>();

public PartialViewResult GetTiles(string id) {
 var nodes = new List<Model>();
 //make a call to database and generating the list of child nodes of type Model.
 // get the rows from the db which have parentid as the passed value.
 //for back button: myStack.push(nodes);
return PartialView("PartialView2",nodes);
}

//Method to call from jQuery on click of #img
public PartialViewResult BackButton() {
return PartialView("PartialView2",myStack.Pop());
}
string icon;
string title;
string parentid;
string id;
bool hasChildren;