none
Pegar ID inserido por Ajax RRS feed

  • Pergunta

  • Tenho uma função que incluo um cadastro, e ao incluir eu chamo outra função, nesta outra função preciso passar o último ID incluído, como posso fazer isso ?

    function SalvarHorario() {
    
    
        //NomeHorario
        var nome = $("#Nome").val();
    
        var token = $('input[name="__RequestVerificationToken"]').val();
        var tokenadr = $('form[action="/Horario/Create"] input[name="__RequestVerificationToken"]').val();
        var headers = {};
        var headersadr = {};
        headers['__RequestVerificationToken'] = token;
        headersadr['__RequestVerificationToken'] = tokenadr;
    
        //Gravar
        var url = "/Horario/Create";
    
        $.ajax({
            url: url
            , type: "POST"
            , datatype: "json"
            , headers: headersadr
            , data: { Id: 0, Nome: nome, __RequestVerificationToken: token }
            , success: function (data) {
                //if (data.Resultado > 0) {
                ListarItens(data.Resultado);
                //}
            }
        });
    }

    Essa função funciona, só que para a função ListarItens preciso passar o idHorario, que acabou de ser incluído, de todas as formas que tento, ele vai nulo. Segue como funciona a Listar Itens.

    function ListarItens(idHorario) {
    
        var url = "/HorarioItem/Create";
    
        $.ajax({
            url: url
            , type: "GET"
            , data: { id: idHorario }
            , datatype: "html"
            , success: function (data) {
                var divItens = $("#divItens");
                divItens.empty();
                divItens.show();
                divItens.html(data);
            }
        });
    
    }

    Tentei idHorario = data, idHorario = data.Id, idHorario = data.Resultado. Ao incluir já preciso passar este id para a outra função. Estou trabalhando com MVC Core. Obrigado.

    segunda-feira, 28 de maio de 2018 12:02

Respostas

  • Não estou conseguindo, utilizo Asp.net CORE e Pages Razor. 

     Bom dia,

           O que deseja seria no mesmo form correto, utiliza Json com Ajax igual ao meu exemplo acima, é a forma mais facil de resolver esse problema. Exemplo sua controller:

    HttpPost]
    public JsonResult Save(SuaEntidade item)
    {
        //seu metodo para salvar
    
        return Json(new { seuId });
    }

     Sua View:

      $.ajax({
            url: url
            , type: "POST"
            , datatype: "json"
            , data: { entidade: entidade, __RequestVerificationToken: token }
            , success: function (data) {
                alert(data.Id);
    
    
            }
        });
     Veja essa lógica, poste as dúvidas.

    quarta-feira, 30 de maio de 2018 11:53

Todas as Respostas

  • Bom dia,

     A url :

    var url = "/Horario/Create";

     

      No MVC você retorna o ID ? O Horario é criado com sucesso mas não retorna o ID seria esse o problema ?

    segunda-feira, 28 de maio de 2018 12:48
  • Eu não sei como posso pegar o ID do Horário que acabou de ser incluído, sim, este é o problema.
    segunda-feira, 28 de maio de 2018 13:02
  • Eu não sei como posso pegar o ID do Horário que acabou de ser incluído, sim, este é o problema.
    Como você inclui na sua base de dados, usando Entity Framework, ADo puro, poste o codigo de como insere o registro Horario na sua base de dados.
    segunda-feira, 28 de maio de 2018 17:23
  • Eu incluo assim, após incluir preciso pegar o id:

    [BindProperty]
            public Horarios Horarios { get; set; }
    
            public async Task<IActionResult> OnPostAsync()
            {
                if (!ModelState.IsValid)
                {
                    return Page();
                }
    
                _context.Horarios.Add(Horarios);
                await _context.SaveChangesAsync();
                return RedirectToPage("./Index");
            }

    segunda-feira, 28 de maio de 2018 20:29
  • Bom dia,

          Faça o Salvar via Ajax:

    [HttpPost]
    public JsonResult Save(SuaEntidade item)
    {
        //seu metodo para salvar
    
        return Json(new { seuId });
    }

     Ou pode usar outras formas segue o link:

    Dados da Controller para View

    Controller para View

      Eu faria conforme exemplo usando o metodo que postei Save via Ajax... Veja no link qual você se adapta e poste novamente as dúvidas.

    terça-feira, 29 de maio de 2018 11:45
  • Não estou conseguindo, utilizo Asp.net CORE e Pages Razor. 
    terça-feira, 29 de maio de 2018 14:11
  • Não estou conseguindo, utilizo Asp.net CORE e Pages Razor. 

     Bom dia,

           O que deseja seria no mesmo form correto, utiliza Json com Ajax igual ao meu exemplo acima, é a forma mais facil de resolver esse problema. Exemplo sua controller:

    HttpPost]
    public JsonResult Save(SuaEntidade item)
    {
        //seu metodo para salvar
    
        return Json(new { seuId });
    }

     Sua View:

      $.ajax({
            url: url
            , type: "POST"
            , datatype: "json"
            , data: { entidade: entidade, __RequestVerificationToken: token }
            , success: function (data) {
                alert(data.Id);
    
    
            }
        });
     Veja essa lógica, poste as dúvidas.

    quarta-feira, 30 de maio de 2018 11:53