JSON 通过 URL 返回,但不通过 jQuery 返回



我正在使用Visual Studio开发MVC应用程序,我有一个jquery函数似乎引起了问题。我开发了一个返回 json 对象的操作方法(jquery 调用操作>操作调用服务>服务返回一个对象>操作通过映射将对象转换为模型,然后将模型传递给 json(。该操作可以通过 url 调用(通过查询字符串传递 id 参数(,它将 json 返回到网页,但是,当我通过网页调用 jquery 函数时(单击执行 jquery 的按钮(,在 jquery 函数的其余部分执行之前,我得到一个"localhost:50216 说发生了错误"。已经研究了几天,并尝试使用Chrome的调试器无济于事。希望这是有道理的,但如果我需要提供更多信息,请告诉我。任何见解将不胜感激。 最好 乔恩

$("#delayEditModal")
.on("show.bs.modal",
function (event) {
var button = $(event.relatedTarget);
var delId = button.data("guid");
var name = button.data("name");
var modal = $(this);
$.get("@Url.Action("GetDelayDataForEditing", "TrainActivity")", function(data){
alert("Data: " + data);
});
modal.find(".modal-body").text("Edit the Delay at " + name + " with id " + delId);
modal.find(".modal-footer #delayEditButton").data("guid", delId);
});

我能够进入显示"编辑延迟..."的弹出窗口(当我单击具有 id=#delayEditModal 的按钮时(,但是在此之前 - 我相信当 $.get 方法执行时 - 我收到 500 错误。另外,我从未点击警报("数据:"..(部分。

所以我看了几篇文章(其中一篇是 Url.Action:如何将参数从视图传递到控制器?(并对我的代码进行了一些更改。还是没有成功。将继续研究解决方案。

$("#delayEditModal")
.on("show.bs.modal",
function (event) {
var button = $(event.relatedTarget);
var delId = button.data("guid");
var name = button.data("name");
var modal = $(this);
$.ajax({
type: "GET",
url: "@Url.Action("GetDelayDataForEditing")/" + delId,
//data: delId,
success: function () {
alert("Success");
//$('#delays-grid').data('kendoGrid').dataSource.read();
//$("#delayAddModal").modal("hide");
},
error: function () { alert("error"); }
});
//modal.find(".modal-body").text("Edit the Delay at " + name + " with id " + delId);
modal.find(".modal-footer #delayEditButton").data("guid", delId);
});

编辑:我认为我什至没有点击我的ActionResult方法。我在那里设置了一个断点,永远不会击中它。

编辑:我终于能够达到"成功":

$("#delayEditModal")
.on("show.bs.modal",
function (event) {
var button = $(event.relatedTarget);
var delId = button.data("guid");
var name = button.data("name");
var modal = $(this);
$.ajax({
type: "GET",
url: "@Url.Action("GetDelayDataForEditing")/" + "?delayId=" + delId,
dataType: 'json',
//data: delId,
success: function (data) {
alert("Success" + data);
//$('#delays-grid').data('kendoGrid').dataSource.read();
//$("#delayAddModal").modal("hide");
},
error: function () { alert("error"); }
});
modal.find(".modal-body").text("Edit the Delay at " + name + " with id " + delId);
modal.find(".modal-footer #delayEditButton").data("guid", delId);
});

但是,我想弄清楚如何在模态中显示 json 对象的原始内容。这必须是星期一的任务。非常感谢大家分享您的建议和见解。周末愉快!

在问题文本中,您提到"可以通过 url 调用操作(通过查询字符串传递 id 参数("......然而,在您的 $.get 调用中,您没有提供任何此类参数。

您需要向服务器提供一个参数,其名称与操作方法所需的参数相同,例如:

url: "@Url.Action("GetDelayDataForEditing")/" + "?delayId=" + delId,

?后面的部分是参数名称,=后面的部分是要为该参数发送的值。

最新更新