我在我的javascript中有一個ajax調用,它返回並將一個局部視圖加載到一個div中。此功能用於工作,但突然停止。我不認爲我改變了任何代碼或任何會導致問題的事情,但顯然有些事情正在發生。 Ajax調用將在您第一次單擊所調用的按鈕時工作,但在您重新加載頁面之前不會再次調用。我試着添加更多的參數並移動javascript,但它仍然無法正常工作。這有可能發生嗎?AJAX GET調用將在第一次調用但不會在其他點擊後工作
我曾嘗試將onOpen事件移出javascript,同樣的事情仍然發生。我還發出了一個警報呼叫,以確保它正在進入成功呼叫並且呼叫警報。我還安裝了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);
}
「it stopped [working]」 - 這是什麼意思?如果您在'success'處理程序中看到'alert',代碼就會到達那裏。在這種情況下,「數據」是什麼?很明顯,你有另一個'EmployeeAssets'操作標有'[HttpPost]'而沒有'id'參數,對嗎? – Igor 2014-10-17 01:17:28
你還沒有發佈你的HTML,但'#assets-button'是'#assets-container'的子元素嗎? (在這種情況下,您用新的#資產按鈕替換原始的#資產按鈕) – 2014-10-17 02:14:27