Pergunta

estou usando System.Web.Routing No aplicativo WebForm ASP.NET. Eu escrevi a seguinte rota no global.asax

routes.RouteExistingFiles = true; // I made true/false both, but none works

routes.Add("competition", new Route
            (
               "Test",
               new CustomRouteHandler("~/Test/WebForm1.aspx")
            ));

E a estrutura do diretório é a seguinte:-

Inscrição

|

| --- teste (pasta)

   |--- Webform1.aspx

Quando eu escrevo no navegador http://localhost:xxxx/Test/ (Usando a Casini), a solicitação é o identificador da maneira tradicional, não através das rotas e me dá a página "Listagem do diretório - /teste /".

Você poderia me ajudar?

Foi útil?

Solução

Eu tive o mesmo problema e escolhi a solução pragmática que o arquivo que deve lidar com o caminho padrão é chamado de padrão.aspx

routes.Add("competition", new Route ( "Test", new CustomRouteHandler("~/Test/Default.aspx") ));

Outras dicas

Você está usando o roteamento direto da caixa para WebForms, acabei de implementar isso para "WebForms" especificamente, pois há algumas coisas a serem conscientes:

http://haacked.com/archive/2008/03/11/using-ruting-with-webforms.aspx

Hth

Atualizar:

O uso da implementação no link ainda produz o mesmo erro, pois a pasta real existe.

Eu pensaria que, como a pasta existe, ela seria servida (em alguns casos, listando o conteúdo da pasta pode ser desejado)

Talvez adotar uma abordagem diferente seja melhor, por exemplo, se todas as páginas apontarem para páginas de login de extranet específicas, talvez uma pasta descritiva extra funcionasse, por exemplo,/extranetes/teste/?

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