Метод GET всегда получает нулевое значение - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь получить список с Ajax, когда появляется модал, но по какой-то причине мой метод всегда получает нулевую переменную.Я уверен, что проблема заключается в вызове Ajax, потому что если я тестирую свой метод, используя 1 в качестве аргумента вместо значения из Ajax, он возвращает список так, как я хотел.

JS:

$("#visualizacao").on('show.bs.modal', function (e) {
            var data = $(e.relatedTarget);
            var idAviso = data.context.dataset.avisoid;
                $.ajax({
                    type: 'GET',
                    url: 'ListaVisuAviso/' +idAviso,
                    success: function (response) {
                        $('#visu-table tbody').empty(); 
                        var trHTML = '';
                        $.each(response, function (i, item) {
                            trHTML += '<tr><td>' + item.NOME + '</td><td>' + item.DATA_HORA + '</td><td>' + item.DEPARTAMENTO + '</td></tr>';
                        });
                        $('#visu-table tbody').append(trHTML);
                        $('#modal-visu').modal('show');
                    },
                    error: function (xhr) {
                        console.log(xhr);
                    }
                });
            $('#modalAviso').modal('show');
        });

C #

    [HttpGet]
    public JsonResult ListaVisuAviso(string avisoId)
    {
        //var avisoid = 1;
        var avisoid = Convert.ToDecimal(avisoId);

        var query =
            from a in _dataContext.TB_AVISOS_NOTIFICACOES
            join b in _dataContext.VW_USUARIOS4 on a.USUARIO_PR equals b.USUARIOID
            where a.AVISO_ID == avisoid
            select new VisuAviso()
            {
                NOME = b.NOME,
                DATA_HORA = a.DATA_HORA.ToString(),
                DEPARTAMENTO = b.DEPARTAMENTO
            };
        return Json(query, JsonRequestBehavior.AllowGet);
    }

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Я обнаружил, что вызывает "проблему".Чтобы использовать этот способ отправки параметра, моя конфигурация маршрута на бэкэнде ожидала, что это будет параметр с именем «id».Таким образом, я бы либо изменил свой принимающий параметр на «id» вместо «avisoId», как показано ниже:

    [HttpGet]
    public JsonResult ListaVisuAviso(string id)
    {
        //var avisoid = 4;
        var avisoid = Convert.ToDecimal(id);

        var query =
            from a in _dataContext.TB_AVISOS_NOTIFICACOES
            join b in _dataContext.VW_USUARIOS4 on a.USUARIO_PR equals b.USUARIOID
            where a.AVISO_ID == avisoid
            select new VisuAviso()
            {
                NOME = b.NOME,
                DATA_HORA = a.DATA_HORA.ToString(),
                DEPARTAMENTO = b.DEPARTAMENTO
            };
        return Json(query, JsonRequestBehavior.AllowGet);

Или я должен был бы указать имя параметра на JS, например, так? »usuarioId = ", таким образом, маршрут будет знать, что это не параметр id:

        $("#visualizacao").on('show.bs.modal', function (e) {
            var idAviso = $(e.relatedTarget).attr('data-avisoid');
                $.ajax({
                    type: 'GET',
                    url: 'ListaVisuAviso/?usuarioId =' + idAviso,
                    dataType: 'json',
                    success: function (response) {
                        $('#visu-table tbody').empty(); 
                        var trHTML = '';
                        $.each(response, function (i, item) {
                            trHTML += '<tr><td>' + item.NOME + '</td><td>' + item.DATA_HORA + '</td><td>' + item.DEPARTAMENTO + '</td></tr>';
                        });
                        $('#visu-table tbody').append(trHTML);
                        $('#modal-visu').modal('show');
                    },
                    error: function (xhr) {
                        console.log(xhr);
                    }
                });
            $('#modalAviso').modal('show');
        });
0 голосов
/ 10 октября 2018

Попробуйте добавить свойство dataType: 'json' в ваш запрос ajax.

     $("#visualizacao").on('show.bs.modal', function (e) {
        var data = $(e.relatedTarget);
        var idAviso = data.context.dataset.avisoid;
            $.ajax({
                type: 'GET',
                url: 'http://localhost/website/ListaVisuAviso/' +idAviso,
                dataType:'json',
                success: function (response) {
                    $('#visu-table tbody').empty(); 
                    var trHTML = '';
                    $.each(response, function (i, item) {
                        trHTML += '<tr><td>' + item.NOME + '</td><td>' + item.DATA_HORA + '</td><td>' + item.DEPARTAMENTO + '</td></tr>';
                    });
                    $('#visu-table tbody').append(trHTML);
                    $('#modal-visu').modal('show');
                },
                error: function (xhr) {
                    console.log(xhr);
                }
            });
        $('#modalAviso').modal('show');
    });

Также проверьте, является ли URL-адрес url: 'ListaVisuAviso /' + idAviso указывает на правильную конечную точку?Возможно вы могли бы заменить его абсолютной ссылкой для тестирования ;

'http://localhost/website/ListaVisuAviso/' +idAviso
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...