Vra

So hierdie pos gepraat oor hoe om url-herskrywing in 'n ASP.NET-toepassing te implementeer om "vriendelike urls" te kry.Dit werk perfek en dit is wonderlik om 'n gebruiker na 'n spesifieke bladsy te stuur, maar weet iemand van 'n goeie oplossing om "vriendelike" URL's binne jou kode te skep wanneer jy een van die nutsmiddels gebruik waarna verwys word?

Byvoorbeeld, die lys van 'n skakel binne 'n asp.net-kontrole as ~/mypage.aspx?product=12 wanneer 'n herskryfreël bestaan, sal 'n probleem wees, aangesien jy op twee verskillende maniere na inhoud koppel.

Ek is bekend met die gebruik van DotNetNuke en FriendlyUrl's waar daar 'n "NavigateUrl" metode is wat die vriendelike URL-kode van die herskrywer sal kry, maar ek vind nie voorbeelde van hoe om dit te doen met UrlRewriting.net of die ander oplossings uit nie daar.

Ideaal gesproke sou ek so iets wou kry.

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

EDIT: Ek soek 'n generiese oplossing, nie iets wat ek vir elke bladsy op my webwerf moet implementeer nie, maar moontlik iets wat in die teenoorgestelde rigting teen die reëls kan ooreenstem.

Was dit nuttig?

Oplossing

Sien System.Web.Roeting

Roetering is anders as herskryf.Die implementering van hierdie tegniek vereis wel geringe veranderinge aan jou bladsye (naamlik enige kode wat toegang tot navraagstring-parameters kry, sal gewysig moet word), maar dit laat jou toe om skakels te genereer op grond van die roetes wat jy definieer.Dit word deur ASP.NET MVC gebruik, maar kan in enige ASP.NET-toepassing gebruik word.

Roetering is deel van .Net 3.5 SP1

Ander wenke

Skep 'n UrlBuilder-klas met metodes vir elke bladsy soos 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);
        }
    }
}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top