mvc2与ajax表启用后退按钮

时间:2012-01-18 10:25:10

标签: asp.net-mvc-2 browser-history asp.net-mvc-ajax

我创建了具有搜索表单的应用程序,下面包含搜索结果。 现在我希望能够添加历史记录,按钮功能。

问题是我陷入了加载页面的不定循环,我不知道为什么,这是在FireFox中。

我已按照本教程操作如何执行此操作:

  

http://www.asp.net/mvc/tutorials/contact-manager/iteration-7-add-ajax-functionality-cs

我的代码是:

的Javascript

 <% =Html.JQuery() %>
 <script src="../../../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
 <script src="../../../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    <script type="text/javascript">

    var _currentCaseId = -1;
    Sys.Application.add_init(pageInit);
        function OnBegin() {
            var caseId =  $("#SelectDeceased_hidden").val();

            Sys.Application.addHistoryPoint({ "caseId": caseId });

            $(document).ready(function () {
                $("#divTableContainer").html("");
            });
        }

        function OnSuccess() {
            $('#divTableContainer').fadeIn('slow');
        }

        function OnFailure() {
            alert("Something went wrong. Try again...");
        }

    function pageInit() {
        // Enable history
        Sys.Application.set_enableHistory(true);

        // Add Handler for history
        Sys.Application.add_navigate(navigate);
    }

    function navigate(sender, e) {
        // Get groupId from address bar
        var caseId = e.get_state().caseId;

        // if cases does not match
        if (_currentCaseId != caseId) {
            // assign the case id
            _currentCaseId = caseId;
            alert(caseId);
            $(document).ready(function () {

                $.ajax({
                    url: "/PostItems/UmiTable?currentCase=" 
                                             + _currentCaseId 
                                             + "&EntityType=-1",
                    success: function (data) {
                        $("#divContactList").text(data);
                    }
                });
            });
        }
    }

和我的HTML

  <% using (Ajax.BeginForm("UmiTable", new AjaxOptions() { 
                                       OnFailure = "OnFailure", 
                                       OnBegin = "OnBegin", 
                                       LoadingElementId = "divLoading", 
                                       UpdateTargetId = "divTableContainer" })) %>
  <% { %>
  <% using (Html.MooseFieldWrapper("Find case", "StandardForm"))
       {  %>             
            <%= Html.CutomTextBox("Case") %>                
           <li class="Button"><input type="submit" value="Go" /></li>
    <% } %>
  <% } %>
 <div id="divLoading">     
     <div><img src="Indicator.gif" alt="loading data" />Loading</div>
 </div>
 <div id="divTableContainer"></div>

1 个答案:

答案 0 :(得分:0)

最后 我使用jquery历史脚本来管理导航。