Ciao a tutti. Quando imposto una regola UrlRewrite per un percorso di questo tipo http://www.url.com/page.aspx?id=1 da convertire in http://www.url.com/1 ricevo un errore di token per WebResource.axd e ScriptResource.axd.

per risolvere sono costretto a cambiare la regola tipo la seguente http://www.url.com/page.aspx?id=1 in http://www.url.com/page/1 -

Potete consigliarmi un modo per evitare questa noiosissima problematica?
Grazie mille
saluti
Gianluca
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Gianluca,


ricevo un errore di token per WebResource.axd e ScriptResource.axd.

Molto probabilmente la tua regola di url rewriting sta riscrivendo anche le richieste che altrimenti sarebbero state gestite da WebResource.axd e ScriptResource.axd.

Devi fare in modo che ciò non succeda, usando un'espressione regolare che catturi solo gli url che ti interessa riscrivere.

Al momento non so dirti come scrivere l'espressione regolare. Per prima cosa bisogna vedere che richieste partono dal client a server. Quindi premi il tasto F12 per aprire il pannello degli strumenti di sviluppo del browser, poi vai nella scheda Rete/Network, aggiorna la pagina e vedi che richieste sono partite. Magari fai una cattura a video e condividila, così posso vedere che richieste partono.

Probabilmente bisognerà usare un'espressione regolare che usa il negative lookahead per evitare che vengano catturati alcuni percorsi. Esempio, questa dovrebbe evitare che avvenga una riscrittura per le richieste che iniziano per /Script.
^(?!Script).*$



ciao,
Moreno
Modificato da BrightSoul il 22 giugno 2017 21.09 -

Enjoy learning and just keep making
Ciao Moreno,
grazie per avermi risposto. Nel frattempo sto tentando un'altra strada che funziona benissimo ma a metà!

In pratica ho utilizzato Le RoutCollection. La mappatura seguente funziona e fa quello che a me serve.

Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.MapPageRoute("band", "{*id}", "~/redirect.aspx")
End Sub

Il problema sta nel fatto che quando richiamo la url principale del sito ottengo il seguente errore
Object reference not set to an instance of an object.
Ovviamente questo accade perchè la pagina redirect.aspx non trovando il parametro che sto passando Dim myid As String = Page.RouteData.Values("Id").ToString()
va in errore.

Domanda:
Come posso mappare la home del sito?
c'ho provato in mille modi ma non riesco a risolvere!
ti ringrazio infinitamente

Gianluca
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Gianluca,
potresti verificare se "Id" è una chiave presente nel dizionario Values, prima di provare a recuperarne il valore. Se la chiave "Id" non c'è, sai di essere nella home e quindi potrai fornire il contenuto appropriato. Prova così:
If Page.RouteData.Values.ContainsKey("Id") Then
 Dim Id = Page.RouteData.Values("Id").ToString()
 'Qui uso Id in qualche modo
Else
 'Sono nella home page, quindi farò qualcos'altro
End If


ciao,
Moreno

Enjoy learning and just keep making

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.