ASP.NET MVC - View com parâmetro opcional

12/09/2013

Olá, gente.
Estou com a seguinte ideia e gostaria de implementá-la, mas meus conhecimentos em MVC ainda não me permitiram chegar a uma forma de fazer: no controller, por padrão tem a action Index, que é a que lista os itens da tabela. Eu gostaria de poder passar um parâmetro para a Index, mas também queria que ela pudesse ser chamada sem parâmetro. Por exemplo, as seguintes chamadas seriam válidas:
meuprojeto/Produtos
meuprojeto/Produtos/1


Na primeira chamada, listaria normalmente os itens, que é o que já acontece. Porém, SE eu passasse um parâmetro (valor inteiro representando o código do produto), eu queria automaticamente redirecionar para a view de detalhes do produto, pra não precisar chamar manualmente meuprojeto/Produtos/Details/1.

Não sei se fui clara. Se alguém já tiver feito isso ou souber como implementar e puder compartilhar comigo, eu agradeceria muito. =)

Grata desde já.

Rachel Andrade

Respostas

05/10/2013

Joel Rodrigues

Olá, Rachel. Creio que seja preciso criar uma rota customizada ou passar o parâmetro com default null.
Vou fazer alguns testes e dou um retorno em breve.
Responder Citar

06/10/2013

Matheus Caldas

Olá, gente. Estou com a seguinte ideia e gostaria de implementá-la, mas meus conhecimentos em MVC ainda não me permitiram chegar a uma forma de fazer: no controller, por padrão tem a action Index, que é a que lista os itens da tabela. Eu gostaria de poder passar um parâmetro para a Index, mas também queria que ela pudesse ser chamada sem parâmetro. Por exemplo, as seguintes chamadas seriam válidas:
meuprojeto/Produtos
meuprojeto/Produtos/1
Na primeira chamada, listaria normalmente os itens, que é o que já acontece. Porém, SE eu passasse um parâmetro (valor inteiro representando o código do produto), eu queria automaticamente redirecionar para a view de detalhes do produto, pra não precisar chamar manualmente meuprojeto/Produtos/Details/1. Não sei se fui clara. Se alguém já tiver feito isso ou souber como implementar e puder compartilhar comigo, eu agradeceria muito. =) Grata desde já.


Bom dia,

Você pode criar duas Action Index uma com parametro e outra sem, ou
dependendo do parametro você pode fazer assim:

public ActionResult Index(int? parametronull) { return View(); }//nesse caso ele aceitara parametros null
Responder Citar

04/06/2014

Rachel Andrade

Obrigada, gente. Consegui resolver isso sim.
Desculpem a demora em dar um retorno.
Responder Citar