Pergunta

Eu gostaria de ignorar vários curinga rotas.Com asp.net mvc preview 4, eles acompanham:

RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

Eu também gostaria de adicionar algo como:

RouteTable.Routes.IgnoreRoute("Content/{*pathInfo}");

mas que parece quebrar alguns ajudantes que geram urls no meu programa.Pensamentos?

Foi útil?

Solução

Existem duas soluções possíveis aqui.

  1. Adicionar uma restrição ao ignorar rota para se certificar de que apenas os pedidos que devem ser ignorados iria coincidir com o que via.Meio desajeitados, mas ele deve funcionar.

    RouteTable.Routes.IgnoreRoute("{folder}/{*pathInfo}", new {folder="content"});
    
  2. O que está em seu diretório de conteúdo?Por padrão, o Roteamento não encaminha os arquivos que existam no disco (na verdade, verifica se o VirtualPathProvider).Então, se você está colocando o conteúdo estático no diretório de Conteúdo, você pode não precisar de ignorar o percurso.

Outras dicas

Isso pode ser bastante complicado.

Ao tentar descobrir como rota de mapa de dados em uma rota, o sistema está a procura de cima para baixo até encontrar algo onde todas as informações são fornecidas e, em seguida, animais, tudo o mais em parâmetros de consulta.

Desde que as informações necessárias para a rota "Conteúdo/{*pathInfo}" é inteiramente satisfeito sempre (sem dados necessários em todo este percurso), e é perto do topo da lista de rotas e, em seguida, todas as suas tentativas para mapear a unnamed rotas irão corresponder a esse padrão, e todos os seus URLs vai ser baseado nesta ("Conteúdo?ação=foo&controller=bar")

Infelizmente, não há maneira de contornar isso com ação de rotas.Se você usar o nome de rotas (f.e. escolha Html.RouteLink em vez de Html.ActionLink) e, em seguida, você pode especificar o nome da rota correspondente.É menos conveniente, mas mais preciso.

IMO, complexas rotas de tornar a ação-sistema de roteamento basicamente cair.Em aplicações onde eu tenho algo diferente do padrão, rotas, eu quase sempre acabam revertendo para denominado de rota com base URL geração para garantir que eu sou sempre o caminho da direita.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top