Frage

So this post darüber gesprochen, wie url tatsächlich umzusetzen in einer ASP.NET-Anwendung Umschreiben zu erhalten "freundliche URLs". Das funktioniert perfekt und es ist für einen Benutzer zu einer bestimmten Seite zu senden, aber weiß jemand eine gute Lösung für „freundlich“ URLs in Ihrem Code erstellen, wenn eine der referenzierten Tool?

Zum Beispiel einen Link innerhalb eines asp.net Steuerprotokolls als ~ / MyPage.aspx? Product = 12, wenn eine Rewrite-Regel existiert als ein Problem wäre, dann Sie zum Inhalt auf zwei verschiedene Arten verknüpfen.

Ich bin vertraut mit der Verwendung von DotNetNuke und FriendlyUrl ist, wo es eine „NavigateUrl“ Methode, die die freundliche URL Code aus dem Re-Schriftsteller bekommen, aber ich finde keine Beispiele dafür, wie dies zu tun mit UrlRewriting.net oder dem andere Lösungen gibt.

Im Idealfall würde Ich mag Lage sein, so etwas zu bekommen.

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

EDIT: ich für eine generische Lösung suche, nicht etwas, das ich für jede Seite in meiner Website zu implementieren, aber möglicherweise etwas, das gegen die Regeln in der entgegengesetzten Richtung entsprechen kann.

War es hilfreich?

Lösung

Siehe System.Web.Routing

Routing ist eine andere aus neu zu schreiben. kleinere Änderungen an Ihren Seiten erfordert diese Technik der Umsetzung (nämlich müssen jeder Code Zugriff auf Abfragezeichenfolgeflag Parameter geändert werden), aber es können Sie Links auf den Routen definieren Sie generieren. Es wird verwendet, um ASP.NET MVC, aber kann in jeder ASP.NET-Anwendung verwendet werden.

Routing ist ein Teil von .NET 3.5 SP1

Andere Tipps

Erstellen Sie eine UrlBuilder Klasse mit Methoden für jede Seite etwa so:

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);
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top