我正在研究ASP.net MVC 2.0应用程序。我正在使用Ajax表单。在那里我有一个下拉和一个按钮。Ajax的奇怪行为
点击按钮后,如果Ajax请求成功,我想重新加载下拉菜单。
因此,我在Ajax窗体的回调函数内部调用了一个jQuery Ajax函数。
在这个jQuery的Ajax函数中,我正在编写代码来获取新的数据和绑定以便下载,以便它将被重新加载新数据。
在这里,每件事情都是第一次正常工作。但是,当我点击下一次的按钮时,Ajax jquery函数被调用,但它不会触及控制器操作方法。
代码:
这里,是我的jQuery函数:
<script type="text/javascript">
function GetData() {
$.getJSON("/Home/GetUsers", null, function (data) {
var selectList = $("#ddlUsers");
selectList.empty();
alert("Inside Get Json method of jquery Ajax");
var defaultoption = $('<option>').text("--Select--").val("");
selectList.append(defaultoption);
$.each(data, function (index, optionData) {
var option = $('<option>').text(optionData.Text).val(optionData.Value);
alert(option);
selectList.append(option);
});
});
}
function Callback() {
GetData();
alert("Sucessfully done");
}
function Failed() {
alert("Sorry, an error occured while processing your request");
}
方法中位指示:
[HttpGet]
public JsonResult GetUsers() ----> Method that is called from GetData() Ajax call
{
var data = GetUsersList();
return Json(data, JsonRequestBehavior.AllowGet);
}
public SelectList GetUsersList()
{
Db Fectch
return data;
}
我无法理解为什么上面所指出的方法不要求第二但是GetData()被调用。
请帮助..
浏览器是否可以缓存ajax调用,而不是从服务器调用它? –
@whoshotjr ..确实+1您的评论。它真的是因为浏览器缓存..它不是调用服务器..谢谢 –