Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Ideias para ir a um cadastro auxiliar e voltar

Eu tenho um cadastro de Clientes e nele há um dropdownList alimentado por uma tabela de Cidades. O cadastro de Cidades tem seu Controller e telas para cadastrar nova Cidade.

Como eu poderia colocar um link após o DropDownList de forma que ele me levasse ao Cadastro e lá, após cadastrar a Cidade me levasse de volta para a tela de Cadastro de Cliente.

Pelo que pensei eu teria de levar as informações que já teria cadastrado sobre o cliente, adicionar o ID da nova Cidade e fazer o retorno com essas informações para que eu não tivesse de preencher novamente.

Não estou sabendo bem como fazer.

Por que teria de fazer um novo Action para que o cadastro de nova cidade soubesse que o Voltar seria para tela de Cadastro de Clientes.

Alguém poderia me ajudar nisso?

6 respostas

Olá Jaqueline,

o que você precisa fazer é que no método que cadastra a Cidade, no seu return você devolva com o RedirectToAction para a action de cadastrar o cliente. Como você estará redirecionando seu usuário, o que vai acontecer é que uma nova requisição para a action do Cliente será disparada e, consequentemente, carregará a lista de cidades novamente do seu banco de dados. Nesta lista, estará a cidade que você acabou de cadastrar.

Ok, entendi, e obrigada pela resposa.

Agora, eu já tenho uma tela de Cadastro de Cidades.

Como faço para ela atender a dois retornos distintos?

Por que essa tela de cadastro de Cidade pode ser chamada pelo Cadastro de Cliente e pelo Cadastro de Contatos.

Tem alguma forma bem padrão de fazer isso?

O campo Cidade no Cadastro de Clientes não é o primeiro. Quem estiver preenchendo o cadastro já terá preenchido alguns campos.

Qual é a maneira correta de guardar estes dados para que quando voltar eles estejam preenchidos e baste escolher a nova cidade e continuar o processo de cadastro?

solução!

O jeito mais fácil que eu vejo de fazer isso é você criar actions e views diferentes, sendo algumas para o cadastro normal da cidade e outra para o cadastro vindo do cliente. Isso evita você ter que colocar muita lógica para verificar para qual tela tenho que redirecionar E para evitar muita repetição nas views dado que os formulários serão bem parecidos, os trechos em comum você poderia usar as view parciais para fazer isso. Aqui um link que mostra como trabalhar com elas.

Sim, já vi as views parciais no curso.

O ActionLink também passa os parametros dos campos já preenchidos automaticamente como o Form Action faz?

O meu problema ainda é o fato de que o dropdownlist pode ser, por exemplo, o 10o. campo. O usuário já preencheu os outros 9 e daí nota que a Cidade do Cliente não está na lista. Precisa cadastrar uma nova.

Ele clica no link, Cadastra a nova cidade. Quando volta ao cadastro do cliente a Nova cidade está na lista mas ele precisará cadastrar tudo novamente.

E não estou encontrando nada que indique que no momento do click no link eu possa guardar os valores dos campos já digitados.

Trabalhei num sistema com cadastros que era que você precisa, utilizávamos um plugin no select (chosen.js) para estilizar e melhorar a usabilidade para os usuários e colocamos dois botões abaixo:

  • Adicionar: era um link para uma outra aba direcionando para o link de cadastro do select
  • Recarregar: Ajax para listar no banco os valores do Select.

o Usuário podia cadastrar um novo registro do select caso não existisse, pois abria numa nova aba e depois, era só recarregar por ajax os novos registros. Só será necessário validar se o Registro do select ainda existe no banco, pois o usuário pode excluir um item e ainda assim deixá-lo selecionado no select, com itens obsoletos.

Se quiser alguma dica a mais na implementação, eu posso postar mais detalhes.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software