404 messaggi dal 09 maggio 2012
Dopo aver letto un pò di guide e seguito diversi tutorial non riesco ad implementare l'URL routing nel mio sito web in web forms.

Si tratta di un semplice blog. La pagina articolo.aspx riceve un parametro numerico che coincide con l'id dell'articolo.

Nel global.asax ho apportato le seguenti righe:

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
        ' Codice eseguito all\'avvio dell\'applicazione
        RegisterRoutes(RouteTable.Routes)
        
        
    End Sub

Shared Sub RegisterRoutes(routes As RouteCollection)
        
        routes.MapPageRoute("articoli", "articoli/{id}/{titolo}", "~/articolo.aspx.vb")
    End Sub


La pagina dell'articolo ottiene l'id tramite:

ID_a = CInt(Page.RouteData.Values("id"))


E nella home il link che dovrebbe chiamare un articolo:

<asp:hyperlink ID="lit1" runat="server" navigateUrl='<%$ RouteUrl:routerName=articoli,id=1,titolo=titoloprova%>'>esemplio</asp:hyperLink>


Se linko alla pagina ottengo l'URL desiderato ma mi dice pagina non trovata. Cosa c'è che non va ?
98 messaggi dal 13 febbraio 2016
Ciao Francesco,
togli l'estenzione .vb dal metodo MapPageRoute

    routes.MapPageRoute("articoli", "articoli/{id}/{titolo}", "~/articolo.aspx")


Ciao
404 messaggi dal 09 maggio 2012
inutile, non va. Sempre lo stesso risultato, pagina non trovata
98 messaggi dal 13 febbraio 2016
ma la pagina articolo.aspx nella root esiste?
404 messaggi dal 09 maggio 2012
Certo che esiste. Fino ad ora l'ho utilizzata con il parametro "I_" che passa l'id dell'articolo. Ma implementando questa funziona proprio non va e non capisco perchè. Il sito gira in locale
404 messaggi dal 09 maggio 2012
cliccando sul link questo è l'url di destinazione:

http://localhost:39588/nomesito/articoli/1042/titoloprova?routerName=articoli
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Francesco,
il nome del parametro non è corretto: al posto di routerName metti routeName.

Qui trovi un esempio funzionante.
https://1drv.ms/u/s!Ao4rhSdtDw8rgaJI4rFU7uUsaZhtzQ

Nel tuo caso però il problema potrebbe anche essere altrove. Forse IIS non sta passando le richieste ad ASP.NET e quindi il modulo di routing non ha proprio l'opportunità di riscrivere l'url.

Prova ad abilitare rammfar nel web.config.
<system.webserver> 
   <modules runAllManagedModulesForAllRequests="true"></modules>
</system.webserver>


Il problema lo riscontri sul tuo PC di sviluppo o nel server? Che versione di IIS e del framework stai usando?

ciao,
Moreno
Modificato da BrightSoul il 20 settembre 2016 19.14 -

Enjoy learning and just keep making
404 messaggi dal 09 maggio 2012
ciao Grazie, sono riuscito parzialmente a far funzionare il routing. Da quando lo utilizzo però ho problemi con tutti i link presenti nelle pagine. Masterpage pagina default e cartella immagini, sono nella stessa root.

Ad esempio, una delle immagini, con questo tipo di percorso:

(immagini/prova.jpg)

funziona sia in locale che sul server.

Da quando utilizzo il rountig non so per quale motivo sono stato costretto ad impostare tutti i link cosi:

(../immagini/prova.jpg)

Questa configurazione però funziona sul server ma non in locale.

Cosa posso fare ?

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.