Невозможно отобразить результаты $ .ajax в метках - PullRequest
0 голосов
/ 27 февраля 2019

Я создал MVC ASP.Net View, используя Razor, и у представления есть поиск, который прекрасно работает, если я перезагружаю представление (отправляю параметры поиска определенному контроллеру, а затем перезагружаю представление, чтобы показать должные результаты).

Однако теперь мне нужно использовать jQuery для отправки параметров поиска контроллеру и получения / отображения результатов в определенных ярлыках моего представления.Я кодировал это в событии щелчка поиска

$.ajax({
  type: "POST",
  url: '@Url.Action(actionName: "PrecalificacionLibreGestion", controllerName: "Home")',
  datatype: "json",
  contentType: "application/json",
  data: JSON.stringify({
    NUMERO: numero,
    NIT: nit
  }),
  beforeSend: function() {
    $("#loader").show();
  },
  success: function(data) {
    $("#loader").hide();
    if (data.respuesta == "OK") {
      $("#lblPrecalificacion").empty();
      $("#lblAccion").empty();
      $("#lblPrograma").empty();
      $("#lblPrecalificacion").val("CODIGO PROGRAMA: " + data.codigo_programa);
      $("#lblAccion").val("ACCIÓN FORMATIVA: " + data.accion_formativa);
      $("#lblPrograma").val("PROGRAMA: " + data.precalificacion);
    }

    if (data.respuesta == "OKNO") {
      alert("no se encontró");
    }
  }
});

Он отправляет два параметра в контроллер, а также контроллер возвращает правильную информацию в соответствии с параметрами поиска, но мне не удается показать информациюв элементах label.

Я получаю пустую веб-страницу с результатами в формате JSON, как показано ниже:

enter image description here

Не могли бы вы сказать мне, чтоЯ делаю неправильно, пожалуйста.

это кнопка поиска

<button class="btn btn-default" type="submit" id="btn-buscar"><span class="glyphicon glyphicon-search"></span></button>

1 Ответ

0 голосов
/ 27 февраля 2019

Когда вы запускаете код под нажатием кнопки отправки, проблема заключается в том, что отправка формы вызывает перенаправление страницы до запуска вашей логики AJAX.Чтобы это исправить, вам нужно вызвать preventDefault() в случае события, которое вызывается.

Однако еще лучше будет подключиться к событию submit родительского formэлемент вместо нажатия кнопки.Попробуйте это:

$('#yourForm').on('submit', function(e) {
  e.preventDefault();

  $.ajax({
    // your AJAX logic here...
  });
});
...