/ / ASP.Net MVC 3 - Controlador único, ação única e várias exibições - forms, asp.net-mvc-3, exibição

ASP.Net MVC 3 - Controlador único, ação única e várias exibições - forms, asp.net-mvc-3, exibição

Gostaria de saber qual é o melhor método parauma ação retorna visões diferentes. Digamos que você tenha um formulário para enviar dados, mas deseja escolher a visualização, dependendo de quais dados serão enviados. Prefiro não usar um redirecionamento, pois há coisas que quero que sejam exibidas nos dados publicados.

Um exemplo disso seria ter um formulário Editar que exibe uma visualização Detalhes ao clicar em Salvar, mas sem usar um redirecionamento.

Eu sei que isso poderia ser feito com uma única visualizaçãocontendo uma instrução if condicional para exibir isso ou aquilo, mas há casos em que eu preferiria que minhas visões permanecessem simples sem muito código nelas. Se o controlador pudesse apenas escolher a exibição a ser exibida após a publicação dos dados, isso seria ótimo.

Respostas:

3 para resposta № 1

Você devemos estar usando o padrão Publicar / Redirecionar / Obter. Você ainda pode "exibir coisas". Você pode passar um ID no URI e procurá-lo no novo GET ou usar TempData.

A tentativa de burlar a publicação / redirecionamento / obtenção é não uma boa solução Entre outras coisas, ele quebra o botão Voltar.


6 para resposta № 2

Há uma sobrecarga no View() método que permite especificar o nome da exibição que você deseja retornar.

return View("DetailsView", model);