返回按钮到上一个局部视图

Posted

技术标签:

【中文标题】返回按钮到上一个局部视图【英文标题】:Back button to previous partialview 【发布时间】:2015-01-15 15:47:58 【问题描述】:

在我的 .Net MVC4 项目中,视图包含部分视图,在每个对应的 Ajax.Beginform 和选项 InsertionMode = InsertionMode.Replace, 之后替换为另一个部分视图 所以 senario 是

    Partialview1 在第一次 Ajax.Beginform 调用时呈现 提交表单,partialview2 在第二次渲染Ajax.beginform,所以partialview1 被partialview2 替换

3. 上一个按钮调用 partialview1

我想知道如何实现 step3 以返回上一个部分视图,并返回一些简单的历史记录。

【问题讨论】:

【参考方案1】:

第一种方法:我认为使用浏览器后退按钮的最佳方法是使用history.pushState

如何实现它取决于你在View上的情况。

一些关于pushState的链接:

http://rosspenman.com/pushstate-jquery/

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

第二种方式:如果不想使用浏览器返回按钮可以使用js:

function getBack()

   $.ajax(
     type: "GET",
     url: '@Url.Action("ReturnPartialViewControllerMethod")',
     success: function(data) 
           // data is your view
          $('#divForParticialView').html(data);
     
   );

在你的 HTML 中:

<a href="javascript:void(0);" onclick="getBack()">Get Back</a>

【讨论】:

Ty 回复,浏览器后退按钮并不是我真正要搜索的内容,需要在大 html 视图的一部分上返回一些东西 我认为你应该使用 js 并在 ajax 调用上替换部分 DOM 我想我可能会从你所说的得到一个想法,InsertionMode = InsertionMode.Replace 确实清除了 html 标记的内容并替换为新内容,但是如果我创建一个空的保留元素并在其中填充内容相反,因此需要替换的元素可以使用.hide() 是的,你说得对。正如我所说,这取决于您的情况。我用一些例子更新了答案。

以上是关于返回按钮到上一个局部视图的主要内容,如果未能解决你的问题,请参考以下文章

按一次返回按钮停留在同一个片段上,如果按两次,它将返回到上一个片段

自定义 UIView XIB 内的 iOS 导航返回按钮(无导航控制器)

带有 Webview 的片段利用硬件后退按钮转到上一个网页

UINavigationController 后退按钮消失?

以编程方式使后退按钮转到上一个视图

导航到上一个视图控制器,默认后退按钮不起作用