59 messaggi dal 22 giugno 2001
Ciao a tutti,

Utilizzando come base di partenza lo script di Cristian Civera http://www.aspitalia.com/script/953/Utilizzare-Funzionalita-URL-Routing-ASP.NET-3.5-SP1.aspx, nonostante qualche difficoltà risolta grazie al supporto di Cristian, sono riuscito ad ottenere l'url routing su una particolare pagina.

Il routing mi trasforma l'url /Prodotto.aspx?ID=1 in /p/1/nome-prodotto/ (ho mantenuto TEMPORANEAMENTE la possibilità di passare in querystring l'id del prodotto da visualizzare).

Adesso ho aggiunto degli <asp:UpdatePanel /> su alcuni controlli presenti nella pagina "routata", ma al secondo postback asincrono (curiosamente NON al primo) ricevo un errore 404:

--------
Messaggio: Sys.WebForms.PageRequestManagerServerErrorException: Errore sconosciuto durante l'elaborazione della richiesta sul server. Codice di stato restituito dal server: 404
Linea: 4723
Carattere: 21
Codice: 0
URI: http://localhost/ScriptResource.axd?d=kCp_1-yahr6E_f-UuTyRaCE12uURXr6AFgrAdvT_HhlTRdABOBJ2p2U50doPWLXIadP1-YqOz7ZWF_i0h_3wFoTw_v-Vhg6OKr6k5_nF4K81&t=ffffffffd18e6350
--------

L'errore dipende sicuramente dal disallineamento tra le path dovuto all'url routing (la pagina viene vista come se fosse all'interno di una sottocartella).

Facendo qualche ricerca su google, su diversi siti si indicava come soluzione l'aggiunta di questa route:

System.Web.Routing.RouteTable.Routes.Add(New System.Web.Routing.Route("{resource}.axd/{*pathInfo}", New System.Web.Routing.StopRoutingHandler()))

che dovebbe servire per impedire il routing dei "file" .axd. Ho provato ad aggiungere questo route subito dopo (e subito prima) le impostazioni relative al routing necessarie per la mia pagina, ma continuo a ricevere l'errore 404.

Il problema è sicuramente di routing perché chiamando la pagina tramite query string il problema non si verifica.

Che fare? :-|

Ciao
Sebastiano
649 messaggi dal 13 novembre 2008
Contributi
ciao, anche io ho lo stesso problema, ed utilizzo urlrewritingnet: nel momento in cui aggiungo nella pagina con url riscritto un controllo ajax, per esempio un banale rating, con relativo updatePanel, non riesco più a gestire il postback. In particolare succede con tutti i controlli ajax con autopostback=true.
Mi chiedo se è possibile riscrivere il path con l'originale solo per gli eventi del controllo in questione, oppure settare una regola particolare per il controllo in web.config.

grazie
59 messaggi dal 22 giugno 2001
Aspettiamo pazientemente che qualcuno ci illumini :-)
649 messaggi dal 13 novembre 2008
Contributi
nel frattempo googleando ho trovato questo:

http://blog.michelecerreto.com/index.php/2007/12/06/aspnet-urlrewrite-e-ajax-updatepanel-problemi-di-postback/

59 messaggi dal 22 giugno 2001
Ho risolto il problema utilizzando il 4) punto del link che mi hai passato! Quindi grazie mille! :)

Hai provato anche tu?

Ciao
Sebastiano
649 messaggi dal 13 novembre 2008
Contributi
allora: utilizzando la soluzione che ti ho indicato non mi funziona, poi mi sono letto il Metodo HttpContext.RewritePath, l'ho inserito nel Page_Load così

HttpContext.Current.RewritePath("~/newsView.aspx?q=12",false);

dove il primo parametro è l'indirizzo che voglio e il secondo è il rebaseClientPath che va impostato a false per risolvere le risorse del client.

Semplicissimo, e sembra funzionare, ma devo testare diverse pagine che utilizzano il rewrite...

ciao!
mi sono imbattuto nel tuo identico problema e sto impazzendo, mi aiuteresti a risolverlo?

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.