Usuário com melhor resposta
Pegar ID inserido por Ajax

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.
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.
- Marcado como Resposta Mariana C. Costa quarta-feira, 30 de maio de 2018 14:32
Todas as Respostas
-
-
-
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. -
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"); }
-
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:
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.
-
-
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.
- Marcado como Resposta Mariana C. Costa quarta-feira, 30 de maio de 2018 14:32