当我在action方法中使用断点向服务器发出ajax请求时,它仅在第一次停止在此断点上。点击第二个,第三个等后,它会在此断点处停止但不会停止。当我将方法从GET
更改为POST
时,它每次都会停止。这种行为的原因是什么?
客户端:
$(function () {
setListAction();
});
function setListAction() {
$("li.list").on("click", function () {
alert("active");
var id = $(this).attr("file-id");
$.ajax({
type: "GET",
url: "TechAcc/ManageFile/" + id,
beforeSend: function myfunction() {
$("#loading").css("display", "block");
$("#fade").css("display", "block");
},
success: function (data) {
var content = $(data).find("div#content");
$("div#content").html(content.html());
$("#loading").css("display", "none");
$("#fade").css("display", "none");
}
});
});
}
服务器端:
[HttpGet]
public ActionResult ManageFile(int id = 0)
{
FileModel model = null;
if (id != 0)
model = new FileModel() { File = _repository.GetFileBy(id), GetAllFiles = _repository.GetAllFiles() };
else if (Session["Model"] != null)
model = (FileModel)Session["Model"];
else
model = new FileModel() { GetAllFiles = _repository.GetAllFiles() };
return View(model);
}
答案 0 :(得分:0)
如果您的ID为“内容”的div有列表,则无效。
<div id="content">
if your list is here, it won't work.
...
<li class="list">...</li>
...
</div>
如果你的设计是这样的,你需要在替换HTML响应后绑定click事件。即,
success: function (data) {
var content = $(data).find("div#content");
$("div#content").html(content.html());
//adding code here.
$("div#content").find("li.list").on("click", function() {
//same above click code should come here.
//Note: this newly added code block should not come here in click.
});
$("#loading").css("display", "none");
$("#fade").css("display", "none");
}