[ValidateAntiForgeryToken]// validacao de seguranca public async Task <IActionResult> Create([Bind("AtratividadeId,DuracaoId,EstacaoAnoId,MiradouroId")] Atratividade atratividade) { if (ModelState.IsValid) { //todo: validacoes antes de inserir a atratividade _context.Add(atratividade); await _context.SaveChangesAsync(); //todo: informar o utilizador, atratividade criada com sucesso return(RedirectToAction(nameof(Index))); } ViewData["DuracaoId"] = new SelectList(_context.Duracao, "DuracaoId", "DuracaoId", atratividade.DuracaoId); ViewData["EstacaoAnoId"] = new SelectList(_context.EstacaoAno, "EstacaoAnoId", "Nome_estacao", atratividade.EstacaoAnoId); ViewData["MiradouroId"] = new SelectList(_context.Miradouro, "MiradouroId", "Coordenadas_gps", atratividade.MiradouroId); return(View(atratividade)); }
public async Task <IActionResult> Edit(int id, [Bind("AtratividadeId,DuracaoId,EstacaoAnoId,MiradouroId")] Atratividade atratividade)//serve para evitar alguns ataques, so recebe campos que estejam no bind { if (id != atratividade.AtratividadeId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(atratividade); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AtratividadeExists(atratividade.AtratividadeId)) { // todo: talvez alguem apagou essa atratividade // pergunta ao utilizador se quer criar uma nova com os mesmos dados return(NotFound()); } else { // todo: mostrar o erro e perguntar se quer tentar outra vez throw; } } // todo: informar o utilizador que a atratividade foi editada com sucesso return(RedirectToAction(nameof(Index))); } ViewData["DuracaoId"] = new SelectList(_context.Duracao, "DuracaoId", "DuracaoId", atratividade.DuracaoId); ViewData["EstacaoAnoId"] = new SelectList(_context.EstacaoAno, "EstacaoAnoId", "Nome_estacao", atratividade.EstacaoAnoId); ViewData["MiradouroId"] = new SelectList(_context.Miradouro, "MiradouroId", "Coordenadas_gps", atratividade.MiradouroId); return(View(atratividade)); }