填充cascobox级联时出错:无法加载资源:net :: ERR_CONNECTION_RESET

时间:2019-07-29 13:04:23

标签: c# visual-studio asp.net-core entity-framework-core

我正在尝试创建一种注册系数的方法,该系数链接到一个表,该表又属于一个盟约,其想法是在第一个组合框中选择盟约,然后在第二个组合框中自动填充表,然后选择具有系数的表...,但返回错误:无法加载资源:net :: ERR_CONNECTION_RESET。

我已经做了很多研究,并更改了jquery脚本,到目前为止什么也没有。

控制器:

//para json
    [HttpGet]
    [EnableCors("MinhaPolitica")] // AQUI!!!
    public JsonResult FiltraConvenios(int id)
    {
        ViewData["ConvenioId"] = new SelectList(_context.Set<Convenio>(), "Id", "Nome");
        ViewBag.Convenios = _context.Convenio.ToList();
        List<SelectListItem> Lista = new List<SelectListItem>();
        var Dados = _context.Tabela
                .Where(c => c.ConvenioID == id)
                .OrderBy(c => c.Convenio)
                .Select(t => new
                { t.Id, t.Nome });
        foreach (var Linha in Dados)
        {
            Lista.Add(new SelectListItem()
            {
                Value = Linha.Id.ToString(),
                Text = Linha.Nome,
                Selected = false
            });
        }
        return Json(Lista);
    }


View

   <div class="ibox-content">
                <div class="col-md-12">
                    <form asp-action="Create">
                        <div class="row">
                            <div class="col-md-2">
                                <div asp-validation-summary="ModelOnly" class="text-danger"></div>
                                <div class="form-group">
                                    <label asp-for="Valor" class="control-label"></label>
                                    <input asp-for="Valor" class="form-control" />
                                    <span asp-validation-for="Valor" class="text-danger"></span>
                                </div>
                            </div>
                            <div class="col-md-2">
                                <div class="form-group">
                                    <label asp-for="DataAtivo" class="control-label"></label>
                                    <input asp-for="DataAtivo" class="form-control" />
                                    <span asp-validation-for="DataAtivo" class="text-danger"></span>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="ConvenioID" class="control-label"></label>
                                    <select id="SelectConvenio" asp-for="ConvenioID" class="form-control" asp-items="ViewBag.ConvenioID"></select>
                                </div>
                            </div>
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="TabelaID" class="control-label"></label>
                                    <select id="SelectTabela" asp-for="TabelaID" class="form-control"></select>
                                </div>
                            </div>
                            <div class="col-md-1" style="margin-top:26px">
                                <div class="form-group">
                                    <input type="submit" value="Salva" class="btn btn-primary" />
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>

jQuery:

<script>


$(document).ready(function () {
    $('#SelectConvenio').change(function() {
        console.log('@Context.Request.Host');
        console.log("clicou select convenio e mudou");
        //limpa seletc ESCRAVO
        $('#SelectTabela').empty();
        console.log("passou por remoção da lista");

        //Guarda opção que foi selecionada no Select MESTRE
        var OpcaoAtual = $(this).val();
        $('#SelectTabela').append($('<option></option>').val("0").html('Selecione uma Tabela'));
        var x = document.getElementById("SelectTabela");
        var option = document.createElement("option");

        //Adiciona uma opção tipo Slecione um Valor
        //option.value = "0"
        x.add(option);

        //Mancada para forçar redraw - pode não ser necessário
        var element = document.getElementById('SelectTabela');
        var n = document.createTextNode(' ');
        var disp = element.style.display; // don't worry about previous display style
        element.appendChild(n);
        element.style.display = 'none';
        setTimeout(function() {
            element.style.display = disp;
            n.parentNode.removeChild(n);
        }, 20);
        //fim do redraw - este bloco pode ser retirado

        //para conferir a opção select MESTRE selecionada
        console.log("Opcao Atual" + OpcaoAtual);

        //monta URL completa, com parâmetro
        var url = 'http://' + '@Context.Request.Host/Coeficientes/FiltraConvenios' + OpcaoAtual;
        //verifica url montada
        console.log(url);
        console.log('idConvenio = ' + $('#SelectConvenio').val());

        //chama AJAX
        $.ajax({
            type: 'GET',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'text/plain'
            },
            dataType: 'json',
            url: url,
            success: function(data) {
                console.log(data);
                callbackFunction(data); //IMPORTANTE
            }
        });

        //Carrega o select ESCRAVO
        function callbackFunction(resultData) {
            // alert("entrei");
            var items = '<option value="0"><<Selecione uma Tabela>></option>';
            //console.log(resultData);
            $.each(resultData, function(i, tabela) {

                items += "<option value='" + tabela.value + "'>" + tabela.text + "</option>";
                $("#SelectTabela").append("<option value='" + tabela.value + "'>" + tabela.text + "</option>");
                //confere no console
                console.log("<option value='" + tabela.value + "'>" + tabela.text + "</option>");

            });
            //confere no console
            console.log(items);
            //truque para tirar linha em branco
            $('#SelectTabela option:eq(' + 1 + ')').remove(); //retira branco

        }
    })

    //função auxiliar REDRAW
    //https://gist.github.com/mgHenry/6154611
    jQuery.fn.redraw = function() {
        jQuery(this).each(function() {
            this.style.display = 'none';
            this.offsetHeight; // no need to store this anywhere, the reference is enough
            this.style.display = 'block';
        })
    };
});

</script>

0 个答案:

没有答案