MVC 3 Como utilizar MapRoute

Alguém me pode mostrar como usar o método MapRoute? Tentei criar as minhas próprias rotas, mas não está a funcionar. O que eu quero realizar é uma rota que rotas "http://servername/home/default.aspx "no controlador" Home "e ação"Default". Além disso, seria possível dizer que se o usuário está navegando o padrão.aspx "file", na verdade apontaria para a ação" Index"?

Tentei ler as referências MSDN e pesquisar no Google, mas não me fez nenhum. sensato.

Author: Anton Gildebrand, 2011-06-22

3 answers

A rota que deseja configurar a primeira parte da sua pergunta é:

routes.MapRoute(
    "",
    "home/default.aspx",
     new { controller = "Home", action = "Default" }
);

Assumindo que deseja 'navegar' por omissão.aspx com algum tipo de parâmetro você pode fazer algo como:

routes.MapRoute(
    "",
    "home/default.aspx/{param}",
    new { controller = "Home", action = "Default", param = UrlParameter.Optional }
);

E você teria de criar a sua acção predefinida para aceitar o String param.

 4
Author: Antonio Haley, 2011-06-22 12:41:52
Provavelmente tarde demais para ajudar o desenvolvedor que levantou a questão, mas pode ajudar outra pessoa. Novo para MVC, mas o que eu encontrei é que as rotas do mapa parecem ser processadas na ordem que são adicionados. Eu tive um problema semelhante, minha rota específica não estava funcionando até que eu comecei a adicionar a rota padrão como a última rota.

Se a rota predefinida do mapa for adicionada antes da sua personalizada e o seu URL personalizado corresponder à estrutura definida pela rota predefinida do mapa, nunca irá atingir a sua rota personalizada roto.

 7
Author: Darren Hughes, 2011-09-21 07:09:59

Você também tem que se certificar de que o nome do parâmetro é o mesmo que o nome do parâmetro da ação. Exemplo:

    routes.MapRoute(
        name: "MyName",
        url: "{controller}/{action}/{myParam}",
        defaults: new { controller = "MyController", action = "MyAction", id = UrlParameter.Optional }
    );

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

MyController:

public ActionResult MyAction(string myParam = "")
{

}
 0
Author: live-love, 2014-06-11 16:30:26