Я использую Visual Studio для разработки приложения MVC, и у меня есть функция jquery, которая, кажется, вызывает проблемы. Я разработал метод действия, который возвращает объект json (jquery вызывает действие> действие вызывает службу> служба возвращает объект> действие преобразует объект в модель через карту, а затем передает модель в json). Действие может быть вызвано через URL (передача параметра id через строку запроса), и оно возвращает json на веб-страницу, однако, когда я вызываю функцию jquery через веб-страницу (нажмите кнопку, которая выполняет jquery), Я получаю «localhost: 50216 говорит, что произошла ошибка» перед выполнением остальной части функции jquery. В течение нескольких дней изучал эту проблему и безуспешно пытался использовать отладчик Chrome. Надеюсь, это имеет смысл, но если мне потребуется предоставить дополнительную информацию, пожалуйста, дайте мне знать. Любое понимание будет высоко ценится.
Лучший,
Jon
$("#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: Как передать параметр из View в 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);
});
Edit: я не думаю, что я даже ударил мой метод 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 в модале. Это должно быть задачей на понедельник. Большое спасибо всем за то, что поделились вашими советами и идеями. Хороших выходных!