簡體   English   中英

getJSON沒有調用控制器操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM