Я использую жерех MVC 4 вместе с Jquery 1.10.2обновления функции Ajax на первый вызов только
Я пытаюсь обновить таблицу в рамках частичного представления и отладки Javascript, кажется, сродни вуду (по крайней мере, мне никак).
При первом вызове моей функции ajax обновление происходит, как ожидалось. Любые последующие вызовы не регистрируются.
Я прочитал несколько статей и ответы stackoverflow, которые включали настройку cache = false
, читая вкладку сети в инструментах разработчика, чтобы получить представление о том, что происходит.
Из второго предложения я вижу, что первый вызов возвращает 200
статус ответа, но второй вызов, кажется, ничего не делает.
Я поставил предупреждения в сценарий, при первом вызове все отображаются и обновляются данные, но при втором вызове ничего не происходит, почему?
сценарий
$("#resultsPerPage").change(function() {
alert("pre")
var selectedText = parseInt($(this).find(":selected").text())
call_PropertyTable("", 1, selectedText);
alert("post")
})
//calls _PropertyTable Partial view
function call_PropertyTable(param, val, resultsPerPage) {
$("#hdnCurrentPage").text(val);
alert("pre-ajax")
$.ajax({
cache: false,
url: "_PropertyTable",
type: "get",
data: { 'param': param, 'value': val, 'resultsPerPage': resultsPerPage },
success: function (data) {
$("#properties").html(data);
}
});
alert("post-ajax")
}
вид
<div id="properties">
@{Html.RenderPartial("_PropertyTable", Model);}
</div>
частичный вид
//^^^other data not updating after first ajax call^^^
<select id="resultsPerPage" name="dataTables-example_length" aria-controls="dataTables-example" class="form-control input-sm">
<option value="10" @{if (ViewBag.PageRange == 10) { ViewBag.Selected = "selected"; } else { ViewBag.Selected = ""; }} @ViewBag.Selected>10</option>
<option value="25" @{if (ViewBag.PageRange == 25) { ViewBag.Selected = "selected"; } else { ViewBag.Selected = ""; }} @ViewBag.Selected>25</option>
<option value="50" @{if (ViewBag.PageRange == 50) { ViewBag.Selected = "selected"; } else { ViewBag.Selected = ""; }} @ViewBag.Selected>50</option>
</select> records per page
контроллер
public ActionResult _PropertyTable(string param, int value = 1, int resultsPerPage = 10)
{
ViewBag.PageRange = resultsPerPage;
//other stuff
return PartialView(properties);
}
Это сработало, спасибо. Просто перечитайте документы, которые никогда бы не имели смысла для меня. Теперь я понимаю .... я думаю – tony09uk
@ tony09uk, много вашего другого кода не идеально. Сейчас нет времени, но позже я уточню ответ с некоторыми дополнительными предложениями. –
Спасибо. Я знаю, что мне нужно пройти долгий путь, и любые советы очень полезны. – tony09uk