Usuário com melhor resposta
Rotas em Formulário POST

Pergunta
-
Eu preciso postar os dados para o Controller: BuscarDados, Action Index, porém, existem 5 campos no formulário, são do tipo "select", onde ao menos 2 são obrigatórios, eu quero montar a url com os dados deste filtros, exemplo:
Estive olhando o site http://www.imovelweb.com.br, o jeito que ele usa para filtrar os dados, é exatamente isso que preciso, alguém tem uma dica de como posso fazer para criar as rotas?
Exemplo:
meusite.com.br/imovel, mas posso ir passando parâmetros , assim:
meusite.com.br/imovel-venda
meusite.com.br/imovel-venda-apartamento
meusite.com.br/imovel-venda-apartamento-sao-paulo
ou seja, vou passando parâmetros e parâmetros .
Obrigado,
- Editado CEFL domingo, 8 de fevereiro de 2015 22:53
Respostas
-
Caso você mude a ordem dos parâmetros, você também deverá atualizar a ordem das rotas no atributo "Route".
Por exemplo, invertendo negocio com tipo temos:
[Route("{tipo?}/{negocio?}/{cidade?}")]
public ActionResult Index(string tipo, string negocio, string cidade)Caso não resolva, deixe-nos saber.
Saudações,
Kallebe Lins, Kakaroo- Marcado como Resposta CEFL terça-feira, 10 de fevereiro de 2015 18:42
Todas as Respostas
-
Olá CEFL,
Você poderá utilizar anotações de rotas em seu controller e action para configurar as requisições.
No arquivo "/App_Start/RouteConfig.cs" adicione a chamada de mapeamento de rotas por atributo:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
...
}Em seu controller "BuscarDados" ("/Controllers/BuscarDadosController.cs") adicione os atributos de rota:
[RoutePrefix("imovel")]
public class BuscarDadosController : Controller
{
//
// GET: /BuscarDados/
[Route("{negocio?}/{tipo?}/{cidade?}")]
public ActionResult Index(string negocio, string tipo, string cidade)
{
// aplicar filtro aqui
return View();
}
}As requisições com parâmetros ficarão assim:
Requisição: http://localhost/imovel
Parâmetros: negocio = null, tipo = null, cidade = null
---------------------------------------
Requisição: http://localhost/imovel/venda
Parâmetros: negocio = "venda", tipo = null, cidade = null
---------------------------------------
Requisição: http://localhost/imovel/venda/apartamento
Parâmetros: negocio = "venda", tipo = "apartamento", cidade = null
---------------------------------------
Requisição: http://localhost/imovel/venda/apartamento/sao-paulo
Parâmetros: negocio = "venda", tipo = "apartamento", cidade = "sao-paulo"Leia mais em:
http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx
http://www.davidhayden.me/blog/asp-net-mvc-5-attribute-routingCaso não resolva, deixe-nos saber.
Saudações,
Kallebe Lins, Kakaroo -
-
Caso você mude a ordem dos parâmetros, você também deverá atualizar a ordem das rotas no atributo "Route".
Por exemplo, invertendo negocio com tipo temos:
[Route("{tipo?}/{negocio?}/{cidade?}")]
public ActionResult Index(string tipo, string negocio, string cidade)Caso não resolva, deixe-nos saber.
Saudações,
Kallebe Lins, Kakaroo- Marcado como Resposta CEFL terça-feira, 10 de fevereiro de 2015 18:42