[英]getJSON is not calling the controller action
我不知道為什么會這樣,因為此頁面中還有其他函數也使用getJSON並且它們確實起作用。 我有以下JavaScript代碼
function openSOPNotesDialog() {
var url = '<%: Url.Action("GetSOPNote", "SalesOrder") %>';
var id = <%: Model.SodID %>;
$.getJSON(url, { sodId : id }, function(data) {
alert("data: " + data);
$("#hidSOPSODId").val(data.SodID);
$("#hidNoteId").val(data.NoteID);
$("#txtSOPNotes").val(data.Description);
$("#sopNotesDialog").dialog("open");
});
}
然后我在SalesOrderController類上有此方法
public JsonResult GetSOPNote(int sodId)
{
var service = new SodSrv();
var note = service.GetSOPNotes(sodId);
return Json(note, JsonRequestBehavior.AllowGet);
}
但是,該方法永遠不會在調試器中調用,並且數據將以null返回(這是我所期望的)。 正如我之前所說的,此頁面中還有其他呼叫,它們也正在執行GET請求,所以我不知道可能是什么原因。
聽起來像瀏覽器正在從緩存中提取數據,因為它是一個獲取請求。 如果不打算緩存服務器,請確保在服務器上不設置緩存頭。
嘗試添加error
處理程序以嘗試找出問題所在:
$.ajax({
dataType: 'json',
url: url,
data: { sodId : id },
success: function(data) {
alert("data: " + data);
$("#hidSOPSODId").val(data.SodID);
$("#hidNoteId").val(data.NoteID);
$("#txtSOPNotes").val(data.Description);
$("#sopNotesDialog").dialog("open");
},
error: function(jqXHR, textStatus, errorThrown) {
alert("oops: " + textStatus + ": " + jqXHR.responseText);
}
});
我懷疑原因是getJSON使用get方法,並且控制器通常只接受post方法。 例如,使用任何瀏覽器螢火蟲進行檢查都很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.