373 messaggi dal 09 maggio 2012
www.weblux.it
Ciao raga, purtroppo nonostante molti tutorial non riesco ad implementare il routing di una pagina della mia applicazione web. La pagina in questione è del tipo "locale.aspx?T_=stringatoken" che mediante il token recupera dei dati e cosi via.
Vorrei che l'URL di questa pagina riporti solo il nome del locale partendo appunto dal token. Da quanto ho appreso da vari tutorial ho configurato il mio global.asax cosi:

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
  End Sub
    
  Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Codice eseguito all\'arresto dell\'applicazione
  End Sub
  
  Shared Sub RegisterRoutes(routes As RouteCollection)
    routes.MapPageRoute("locale", "{T_}", "~/locale.aspx")
    
  End Sub


Ovviamente non ho accade nulla. Mi potete dare una dritta ? Grazie

Quarto Francesco
Web Designer & Developer Freelance
10.078 messaggi dal 09 febbraio 2002
Contributi
Ciao Francesco,
a me funziona, puoi spiegare più precisamente cosa succede?
Il problema è che la pagina locale.aspx non riceve la richiesta, oppure che non riesci a recuperare il valore del token?
Con quale versione di Visual Studio stai mandando in debug il progetto?

Qui ho pubblicato un progetto minimale che ti mostra che, appunto, con il tuo codice il routing funziona.
https://1drv.ms/u/s!Ao4rhSdtDw8rgegpsMTXFgL9uAptTQ

Dopo aver avviato l'applicazione in debug, visita /nome-del-locale e vedrai che verrà chiamata la pagina Locale.aspx che visualizza il valore del token "nome-del-locale".

ciao,
Moreno
Modificato da BrightSoul il 17 giugno 2017 18.23 -

Alla Microsoft House di Milano, il 27-28 giugno si parla di accessibilità: eventi, workshop e un hackathon di 2 giorni!
Info e iscrizioni su https://aka.ms/mscomm
373 messaggi dal 09 maggio 2012
www.weblux.it
Grazie ma forse sono io a non aver capito come impostare il tutto. Stando a tale configurazione se io raggiungo l'URL "localhost/locale.aspx?T_=stringatoken" dovrei visualizzare l'URL cosi "localhost/nomelocale".
Io invece continuo a vedere l'URL normale quindi con il parametro. Inoltre suppongo che da qualche parte devo inserire del codice che mi vada a recupera tramite token il nome del locale.

Utilizzo la versione 2010
Modificato da drugomatera il 17 giugno 2017 19.10 -

Quarto Francesco
Web Designer & Developer Freelance
373 messaggi dal 09 maggio 2012
www.weblux.it
Purtroppo ho provato di tutto ma non va ...
Riepilogando: la mia esigenza è quella che i miei utenti abbiano un URL del tipo "www.miosito.ti/nomelocale" e digitando questa stringa nell'URL siano indirizzati sulla loro pagina. Da tale pagina il programma mi deve ovviamente recuperare le info dal DB, cosa che ora faccio mediante il parametro "T_=tokenlocale"

Quarto Francesco
Web Designer & Developer Freelance
10.078 messaggi dal 09 febbraio 2002
Contributi
Ciao,


Stando a tale configurazione se io raggiungo l'URL "localhost/locale.aspx?T_=stringatoken" dovrei visualizzare l'URL cosi "localhost/nomelocale".

No, se raggiungi direttamente la pagina locale.aspx, al momento non c'è nulla che ti ridirezioni automaticamente verso /nomelocale. In caso vedremo poi come farlo.


la mia esigenza è quella che i miei utenti abbiano un URL del tipo "www.miosito.ti/nomelocale" e digitando questa stringa nell'URL siano indirizzati sulla loro pagina.

E' esattamente quello che succede nell'esempio che ti ho inviato. Ti invio uno screenshot del browser.
https://1drv.ms/i/s!Ao4rhSdtDw8rgegqsiO9CGQ7KTbRig



Utilizzo la versione 2010

Ok, io sto usando VS2017 e ha funzionato subito.
C'è bisogno che il tuo webserver di test sappia che le richieste che non terminano con .aspx come /nomelocale vadano anch'esse gestite da ASP.NET.
Probabilmente stai vedendo un errore 404 perché il webserver, anziché passare la richiesta ad ASP.NET, sta cercando una cartella chiamata "nomelocale" sul disco ma ovviamente non la trova.
Tu che webserver stai usando, quello incluso in VS2010 (cassini) o IIS locale?

Leggi qui intanto, vengono[ presentate delle soluzioni per un problema simile al tuo.
https://stackoverflow.com/questions/3523264/asp-net-4-0-url-routing-http-error-404-0-not-found

ciao,
Moreno

Alla Microsoft House di Milano, il 27-28 giugno si parla di accessibilità: eventi, workshop e un hackathon di 2 giorni!
Info e iscrizioni su https://aka.ms/mscomm
373 messaggi dal 09 maggio 2012
www.weblux.it
Utilizzo IIS 7 in locale. Ho letto da qualche parte che in caso di 404 bisogna appunto effettuare una modifica alle configurazioni del sito sul server. Il problema è che questo progetto andrà caricato su un hosting condiviso pertanto non sono sicuro che poi avrò ancora la possibilità di configurare IIS

Quarto Francesco
Web Designer & Developer Freelance
10.078 messaggi dal 09 febbraio 2002
Contributi
Se l'applicazione gira in un application pool in modalità integrata, il file di configurazione del sito IIS è il web.config, con il suo nodo system.webServer. A meno che il provider dell'hosting condiviso non ti abbia impedito l'uso di alcuni nodi del web.config, riuscirai a far funzionare il routing.

Quindi questa dovrebbe essere la prima cosa da verificare.
per ora metti questo nel web.config e vedi se va.

<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

Modificato da BrightSoul il 18 giugno 2017 12.23 -

Alla Microsoft House di Milano, il 27-28 giugno si parla di accessibilità: eventi, workshop e un hackathon di 2 giorni!
Info e iscrizioni su https://aka.ms/mscomm
373 messaggi dal 09 maggio 2012
www.weblux.it
Fatto ma non accade nulla. Ho provato sia con il codice precedente che con questo che ho prelevato da uno dei miei manuali

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    
    RouteTable.Routes.Add("locale", New Route("{T}", new PageRouteHandler("~/locale.aspx")))
    
  End Sub

Quarto Francesco
Web Designer & Developer Freelance

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.