我正在使用Visual Studio开发MVC应用程序,我有一个似乎导致问题的jquery函数 . 我开发了一个返回json对象的动作方法(jquery调用action> action调用服务>服务返回一个对象> action通过map将对象转换为模型然后将模型传递给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 = #directEditModal的按钮时),显示“编辑延迟...”,但在此之前 - 我相信当$ .get方法执行时 - 我收到500错误 . 此外,我从未点过警报(“数据:”..)部分 .
所以我看了几篇文章(其中一篇Url.Action: How to Pass Parameter from View to Controller?)并对我的代码进行了一些更改 . 仍然没有成功 . 将继续研究解决方案 .
$("#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对象的原始内容 . 这将是周一的任务 . 非常感谢所有人分享您的建议和见解 . 周末愉快!
1 回答
在问题文本中,你提到“可以通过url调用该操作(通过查询字符串传递id参数)”......但是在你的$ .get调用中你没有提供任何这样的参数 .
您需要为服务器提供一个参数,其名称与您的操作方法所期望的名称相同,例如:
?
之后的部分是参数名称,然后=
之后的部分是要为该参数发送的值 .