0
検索フォームを持つアプリケーションを作成しました。以下に検索結果が含まれています。 今、私は歴史、ボタンバック機能を追加できるようにしたい。mvc2 with ajax table戻るボタンを有効にする
問題は私がページを読み込む際の無限ループに巻き込まれていることと、なぜこれが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);
}
});
});
}
}
と私はナビゲーションを管理するためにjqueryの履歴スクリプトを使用しているエンド の私の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>
これはIEとChromeでコードが正常に動作するため、MicrosoftAjaxのバグのようです。とにかく古いライブラリです。 jQueryの代わりにまだそれを使用している理由はありますか(あなたが参照しているのを見て、どうしてそれを利用しないのですか?)また、現代のブラウザに組み込まれたHTML5の履歴機能が利用できるようになった今、残念ながらそれを利用することはできません。たとえば、優れた[jquery.history](https://github.com/balupton/history.js)プラグインはこれを行い、APIをサポートしないレガシーブラウザでは古いメソッド(URLフラグメントを使用)に正常に劣化します。 –
@DarinDimitrov:私はこのソリューションを見たので、私はjqueryを使用しないと思っていましたが、Microsoft ajax dllを使用します。 – cpoDesign
まあ、私はあなたが間違っていると思っています。とにかく助けていただきありがとうございます。 –