AJAX GET调用将在第一次调用时工作,但在其他单击之后不工作
AJAX GET Call Will work on the first call but not after other clicks
我的javascript中有一个ajax调用,它返回并将部分视图加载到div中。这个函数以前可以工作,但后来突然停止了。我不认为我更改了任何代码或任何会导致问题的东西,但很明显发生了一些事情。Ajax调用将在您第一次单击调用它的按钮时工作,但在重新加载页面之前不会再工作。我尝试添加更多的参数并移动javascript,但仍然没有成功。为什么会发生这种情况?
我已经尝试将javascript从onOpen事件中移出,但同样的事情仍然会发生。我还打了一个警报电话,以确保它到达成功电话,并发出警报。我还安装了fiddler来检查呼叫,除非第一次点击按钮,否则永远不会进行呼叫。这是一个非常令人沮丧的错误,我们非常感谢所有的帮助。
这是我的Javascript:
@section scripts
{
<script type="text/javascript">
$(document).ready(function () {
$("#assets-button").on("click", function ()
{
$('#assets-container').bPopup(
{
modal: true,
onOpen: function () {
$.ajax({
type: 'GET',
url: '@Url.Action("EmployeeAssets", "Employee",new { id = Model.ID, empNo = Model.EmployeeNumber, username = Model.UserName })',
success: function (data) {
$('#assets-container').html(data);
}
});
},
onClose: function () {
var f = $('#assets-container').children('form');
var serializedForm = f.serialize();
var action = '@Url.Action("EmployeeAssets","Employee",new {empNo = Model.EmployeeNumber})';
$.post(action, serializedForm);
}
});
});
});
</script>
}
以下是我试图调用的操作:
[HttpGet]
public ActionResult EmployeeAssets(int id, int empNo, string username = null)
{
var assets = _employeeDb.EmployeeAssets.FirstOrDefault(e => e.EmpNo == empNo);
if (assets == null)
{
var firstOrDefault = _employeeDb.EmployeeMasters.FirstOrDefault(e => e.EmployeeNumber == empNo);
if (firstOrDefault != null)
{
username = firstOrDefault.UserName;
}
var newasset = new EmployeeAsset()
{
EmpNo = empNo,
UserName = username
};
_employeeDb.EmployeeAssets.Add(newasset);
_employeeDb.SaveChanges();
assets = newasset;
}
return PartialView(assets);
}
您可以尝试使用传递给AJAX调用的设置对象的缓存属性。根据ajax的jQuery文档,缓存的默认值设置为true,所以我想知道您的浏览器是否在第一次请求后访问结果的缓存副本。看起来你也可以设置dataType,这将默认缓存返回false。
此外,我建议除了成功处理程序之外,还将您的警报放在onOpen事件处理程序中,以确保它也被调用。因此,这可能有助于您进一步调试。
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么ng控制器不调用或工作或功能不工作
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- Javascript作用域和Ajax调用;工作不正常
- 使用几个<脚本>标签不会't工作-只调用一个脚本
- 给出<选项>标记一个类?API调用不工作
- show-hide只在ajax调用中第一次工作
- 提交按钮只能在onchange调用输入文本后第二次点击时工作
- 表单提交没有'调用return false后无法工作
- Ajax调用PHP失败,ASP正常工作.NET
- Ajax调用工作正常,但php文件在从对象检索属性时出错
- Ajax调用工作缓慢.可以做得很快
- 为什么不't多个$.getJSON调用工作正常
- 如何让我的jQuery之前()调用工作
- AngularJS:拆分到新文件时不调用工作指令
- 为什么不't此方法从原型中调用工作
- MVC方法调用工作在提琴,但不是在浏览器
- 只有一个函数调用工作
- Javascript 井字 - 获胜函数未调用/工作
- Sencha touch 2不能让Ajax调用工作