34 messaggi dal 17 febbraio 2008
ciao a tutti... ho questo problema...
sto implementando un url rewrite con la costruzione della classe httphandler in questo modo circa

using System;
using System.IO;
using System.Web;
using System.Web.UI;

namespace Peppe.Handlers
{
public class NewsHttpHandler : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context,
string requestType,
string url,
string pathTranslated)
{

//elaborazione nuovo url
//
//
//

context.Items["fileName"] = Path.GetFileNameWithoutExtension(url);
return PageParser.GetCompiledPageInstance(url,
context.Server.MapPath("default.aspx"),
context);
}

public void ReleaseHandler(IHttpHandler handler)
{
}
}
}

e sembrerebbe andare tutto bene ma quando sono nella pagina ed effettuo un post back sulla pagina mi da errore sul viewstate e l'url della pagina ritorna quello normale.... dimentico qualche cosa?
grazie
652 messaggi dal 21 gennaio 2007
Contributi
Leggiti questo articolo da msdn:
http://msdn.microsoft.com/en-us/library/ms972974.aspx

c'è proprio la parte su come gestire i postback in caso di utilizzo della tecnica di url rewriting
34 messaggi dal 17 febbraio 2008
ok, grazie leggerò sicuramente ma per il momento ho risolto così.

using System;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Text.RegularExpressions;
using System.Web.SessionState;

public class UrlRewritev2 : IHttpHandler, IRequiresSessionState
{
public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
string page = "ricerca.aspx";
string URL_corretto = context.Server.MapPath(page);
string queryString = "";
string DatoVariabile = "";

context.Items["originalQuerystring"] = context.Request.QueryString.ToString();
context.Items["originalPathInfo"] = context.Request.PathInfo;

//regular expression per Regione
Regex regexRegione = new Regex("(.+)regione_(.+).aspx");
Match mcRegione;

string Original_Path;
//in questa variabile salvo l'URL completo
if (context.Request.Url.OriginalString.IndexOf("http://") > -1)
Original_Path = context.Request.Url.OriginalString.Substring(7);
else
Original_Path = context.Request.Url.OriginalString;

mcRegione = regexRegione.Match(Original_Path);
if (mcRegione.Success)
{
DatoVariabile = mcRegione.Groups[2].ToString();
queryString = "regione=" + DatoVariabile;
}

context.RewritePath(context.Request.Path, string.Empty, queryString);

Page hand = (Page)PageParser.GetCompiledPageInstance(page, URL_corretto, context);

// Listen for event to rewrite url back before the page renders.
hand.PreRenderComplete += new EventHandler(hand_PreRenderComplete);

hand.ProcessRequest(context);

}

public void ReleaseHandler(IHttpHandler handler) { }

void hand_PreRenderComplete(object sender, EventArgs e)
{

HttpContext.Current.RewritePath(HttpContext.Current.Request.Path,
HttpContext.Current.Items["originalPathInfo"].ToString(),
HttpContext.Current.Items["originalQuerystring"].ToString());

}
}

ciao e grazie...
34 messaggi dal 17 febbraio 2008
PeppeDotNet mi hai postato una articolo di un problema che invece TU avevi già risolto nel 2006 o 2007 se non sbaglio!!! :) l'ho visto sul tuo sito... ciao!
652 messaggi dal 21 gennaio 2007
Contributi
pensa te..
vuol dire che son proprio fuso
34 messaggi dal 17 febbraio 2008
PEPPPPEEEEEEEEEEEEE!!!! :) tutto bene? :)
e di questo sai dirmi qualche cosa????

ciao a tutti...
vediamo se qualcuno riesce a darmi una mano :)
in una mia applicazione web gestisco l'urlrewrite... e fin qui tutto bene.
Ad un certo punto mi è venuto comodo utilizzare la proprietà Page.PreviousPage, ma non funziona perchè fa riferimento alla pagina "riscritta" (per es. /lombardia/) e non alla pagina reale (es. ricerca.aspx).
come posso passargli alla pagina chiamata che la PreviousPage è "ricerca.aspx" e non "/lombardia/" (che è l'url riscritto)?
grazie
daniele

ps:leggendo questo
http://geekswithblogs.net/ranganh/archive/2008/08/31/setting-the-asp.net-forms-action-attribute-url-rewriting.aspx

sembra si risolvi tutto... no?? rigrazie...
Modificato da dab75 il 22 gennaio 2009 13.55 -
82 messaggi dal 01 luglio 2009
www.chida.it
io ho lo stesso problema, un cms aquistato da ditta esterna che fa url rewrite e mi semplificherebbe la vita poter usare il Page.PreviousPage, ma da errore perchè fa riferimento ad un url virtuale. Sto cercando di indicargli la Page.PreviousPag corretta, ma non ci riesco.

Qualcuno sa aiutarmi?

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.