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