Domanda

Quindi questo post ha parlato di come effettivamente implementare la riscrittura dell'url in un ASP.NET applicazione per ottenere "friendly url".Che funziona e che è grande per l'invio di un utente a una pagina specifica, ma qualcuno sa di una buona soluzione per la creazione di "Amichevole" Url all'interno del codice quando si utilizza uno degli strumenti di riferimento?

Per esempio l'elenco di un link all'interno di un asp.net controllo come ~/mypage.aspx?prodotto=12 quando una regola di riscrittura esiste sarebbe un problema, in quanto poi si effettua il collegamento contenuto in due modi diversi.

Io sono familiarità con l'utilizzo di DotNetNuke e FriendlyUrl dove c'è un "NavigateUrl" un metodo che sarà ottenere l'Url friendly codice di ri-scrittore, ma non sto trovando esempi di come fare questo con UrlRewriting.net o altre soluzioni là fuori.

Idealmente mi piacerebbe essere in grado di ottenere qualcosa di simile a questo.

string friendlyUrl = GetFriendlyUrl("~/MyUnfriendlyPage.aspx?myid=13");

EDIT: Sto cercando una soluzione generica, non è qualcosa che devo implementare per ogni pagina del mio sito, ma potenzialmente qualcosa che può abbinare contro le regole, in direzione opposta.

È stato utile?

Soluzione

Vedere Sistema.Web.Routing

Il Routing è diverso da riscrivere.L'implementazione di questa tecnica non richiede modifiche minori alle pagine (vale a dire, qualsiasi codice di accesso ai parametri querystring dovrà essere modificato), ma consente di generare i collegamenti sulla base dei percorsi definiti.E ' utilizzato da ASP.NET MVC, ma può essere impiegato in qualsiasi ASP.NET applicazione.

Il Routing è parte .Net 3.5 SP1

Altri suggerimenti

Creare un UrlBuilder classe con metodi per ogni pagina in questo modo:

public class UrlBuilder
{
    public static string BuildProductUrl(int id)
    {
        if (true) // replace with logic to determine if URL rewriting is enabled
        {
            return string.Format("~/Product/{0}", id);
        }
        else
        {
            return string.Format("~/product.aspx?id={0}", id);
        }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top