在针对Ajax历史记录功能时替换ScriptManager

时间:2010-01-08 14:00:16

标签: .net asp.net-mvc asp.net-ajax

当您为网站创建搜索时,您希望用户体验随时随地,当您浏览网格视图时,您希望能够按返回按钮返回上一个查看过的页面。

在使用asp.net ajax的asp.net中,使用ScriptManager + Ajax Control Toolkit时可以使用History Manager

现在,当您使用ASP.NET MVC时,您无法使用ScriptManager,因为它需要以服务器运行的形式嵌套。

此示例代码用于基本搜索

<% using(Ajax.BeginForm("TestSearch", 
       new AjaxOptions { UpdateTargetId = "details" })) { %>


    <%= Html.TextBox("search") %>

    <input type="submit" value="search" />

<% } %>

当您按标准页面上的提交按钮时,您将被发布到不同的页面,但是,在这种情况下,您不会。因此没有保存历史记录,因为整个网页没有重新加载。

这只是第一个问题。

问题#2

由于未保存历史记录,如上所述,文本框的搜索历史记录不会更新。只有当页面完全回发时才会添加文本框历史记录条目,如何使用asp.net mvc + ajax解决这个问题?

3 个答案:

答案 0 :(得分:1)

您仍然可以使用HistoryManager,但jquery还有更多选项。

Which Javascript history back implementation is the best?

答案 1 :(得分:0)

您是否查看了MVC ScriptManager

我知道,但我一无所知......

答案 2 :(得分:0)

项目中的MS AJAX脚本中提供了内置历史记录;你应该只能在客户端使用它。