void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add("index", new Route("anasayfa", new PageRouteHandler("~/default.aspx")));
}
bu komut global.asax dosyasına yazılıyor. anasayfa komutu default.aspx sayfasına yönlendiriliyor. Yani size web adresinizi ve butonunuzu www.webadresiniz.com/anasayfa diye linklerseniz karşınıza default.aspx sayfası çıkacaktır. Veya sizin orneksayfa.html ile örnek verelim:
RouteTable.Routes.Add("index", new Route("Ornek", new PageRouteHandler("~/orneksayfa.html")));
Linkinizi Ornek diye girerseniz orneksayfa.html dosyası karşınıza çıkacaktır ve adresiniz de: www.siteniz.com/Ornek olacaktır.
Bu şeklin bir üst düzey karşılığı otomatik olarak gelen bir listenin linklerinin bu şekil linklenmesidir. Yani diyelim bir makale ve yazarlarının bulunduğu bir liste sayfaya yerleştirdiniz.
global.asax daki şekli şudur:
routes.MapPageRoute("Makale Detay(sadece isimdir)", "Makaleler", "~/makaledetay.aspx");
Diyelim bir gridviewden bu şekilde yönlendirme yapacaksınız:
<ItemTemplate>
<asp:HyperLink ID="makale" runat="server" NavigateUrl='<%# String.Format("/Makaleler?p={0}-{1}-{2}",(Eval("makaleid").ToString()),(Eval("makaleadi").ToString()) %>' Text='<%# Eval("makaleyazar") %>' ></asp:HyperLink>
</ItemTemplate>
burada 0 olan makeid, 1 olan makaleadi ve 2 olan da makaleyazarını linke çağıracak.. Şu şekilde olacak örnek: Makaleler?p=522-canlilarin-yasamlari-ahmetaydin
Son olarak yapılması gereken şeyler de var. mesela burada p= olayını makaledetay sayfasında QueryStringField="p" şeklinde tanımlamanız gerekir. Bir diğer olay makale ismi, yazar ismi boşluklu ve türkçe karakterli olacağından bu bölümlerin süzgeçten geçirmeniz gerekir. Mesela:
Filtrele(Eval("makaleadi").ToString());
bunun kodlama tarafındaki karşılığı:
public static string Filtrele(string Text)
{
try
{
string strReturn = Text.Trim();
strReturn = strReturn.Replace("ğ", "g");
strReturn = strReturn.Replace("Ğ", "G");
strReturn = strReturn.Replace("ü", "u");
strReturn = strReturn.Replace("Ü", "U");
strReturn = strReturn.Replace("ş", "s");
strReturn = strReturn.Replace("Ş", "S");
strReturn = strReturn.Replace("ı", "i");
strReturn = strReturn.Replace("İ", "I");
strReturn = strReturn.Replace("ö", "o");
strReturn = strReturn.Replace("Ö", "O");
strReturn = strReturn.Replace("ç", "c");
strReturn = strReturn.Replace("Ç", "C");
strReturn = strReturn.Replace("-", "+");
strReturn = strReturn.Replace(" ", "+");
strReturn = strReturn.Trim();
strReturn = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9+]").Replace(strReturn, "");
strReturn = strReturn.Trim();
strReturn = strReturn.Replace("+", "-");
return strReturn;
}
catch (Exception ex)
{
throw ex;
}
}