none
Asp.net Url Rewriting ID yi kaldırmak Örnek : /deneme-makale.html olarak çekmek RRS feed

  • Soru

  • merhabalar

    Asp.net Url Rewriting ID yi kaldırmak Örnek : /deneme-makale.html olarak çekmek

    şu anda örnek olarak  : /1-deneme-makale.html oarak çekiyor. ben 1 nolu id değerini kaldırıp sadece /deneme-makale.html çeksin sitiyorum bunu nasıl yapabilirim ?

    Global.asax kodu :

     protected void Application_BeginRequest(object sender, EventArgs 

                string DosyaYolu = Request.RawUrl;// Burada Dosyanın Yolu Alınır
                if (DosyaYolu.IndexOf("") != -1)
                {
                    if (System.IO.Path.GetExtension(DosyaYolu) == ".html")
                    {
                        string[] path = System.IO.Path.GetFileName(DosyaYolu).Split('-');//HaberID sini alıyoruz
                        Context.RewritePath("~/Sayfa2.aspx", "", "KategoriID=" + path[0], true);
                    }
                }
            }


    • Düzenleyen Asp.Net24 5 Ekim 2012 Cuma 20:56
    5 Ekim 2012 Cuma 20:53

Yanıtlar

  • string KATEGORIID = Request.QueryString["KategoriID"].ToString();

    burda sen ordaki ID yi alıp 

    select * from Tbl_Kategoriler where KategoriID=@KategoriID  

    burda o id yi göre veri çekiyorsun, eğer kaldırırsan ilk satır boşa çıkacak ve kullanılmaz olacak o yüzden ID yi kaldırmadan önce başka unique(eşsiz,tekrarlamayacak) bir değer kullanman gerekecek bu bir string olabilir ve verini kategori id ye göre değil o stringe göre çekeceksin ki onu kaldırabilesin, bilmem anlatabildim mi

    6 Ekim 2012 Cumartesi 21:19

Tüm Yanıtlar

  • Selam,

    Linklerdeki sayıları ve - işaretini kaldır, Sayfa2.aspx dosyanda muhtemelen Page_Load içerisinde

    int id;
    id= Request.QueryString["KategoriID"];
    .
    .
    .
    "select * from makaleler where kategori_ID="+id;

    gibi satırların olması lazım (komple kafamdan attım böyle bişeyler olabilirde olmayabilirde.)

    mantık olarak aşağıdaki gibi yapman lazım.

    string id="";
    id= Request.QueryString["KategoriID"];
    .
    .
    .
    "select * from makaleler where kategori_adi_smart='"+id+"'";

    Global.asax kodu'nu da aşağıdaki gibi değiştirmen lazım.

    protected void Application_BeginRequest(object sender, EventArgs 
    
                string DosyaYolu = Request.RawUrl;// Burada Dosyanın Yolu Alınır
                if (DosyaYolu.IndexOf("") != -1)
                {
                    if (System.IO.Path.GetExtension(DosyaYolu) == ".html")
                    {
                        string path = DosyaYolu;//HaberID sini alıyoruz
                        Context.RewritePath("~/Sayfa2.aspx", "", "KategoriID=" + DosyaYolu.Replace(".html",""), true);
                    }
                }
            }
    


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    http://www.tiravoglu.com


    5 Ekim 2012 Cuma 21:34
  • eğer querystring ile bir kısıtlama getiriyosanız, id olmasa bile oraya stringde olsa uniqe bir değer tanımlamanız gerekecektir istediğiniz sorguyu doğru çekebilmek açısından
    5 Ekim 2012 Cuma 23:28
  • SAYFA2.ASPX

    protected void Page_Load(object sender, EventArgs e)

            {
                string KATEGORIID = Request.QueryString["KategoriID"].ToString();

                string baglan = WebConfigurationManager.ConnectionStrings["BaglantiDB"].ConnectionString;
                SqlConnection baglanti = new SqlConnection(baglan);
                baglanti.Open();

                SqlCommand cmd = new SqlCommand();
                cmd.Connection = baglanti;
                cmd.CommandText = "select * from Tbl_Kategoriler where KategoriID=@KategoriID";//O ID ye ait olan bilgileri aldık
                cmd.Parameters.AddWithValue("@KategoriID", KATEGORIID);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);

                DataTable dt = new DataTable();
                adp.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    lblkategoriid.Text = dt.Rows[0]["KategoriID"].ToString();
                }

                baglanti.Close();
            }

    GLOBAL.ASAX

    string DosyaYolu = Request.RawUrl;// Burada Dosyanın Yolu Alınır
                if (DosyaYolu.IndexOf("") != -1)// Eğer dosya yolunda -KemalBurakYilmaz geçerse aşağıdaki işlemleri yapar
                {
                    if (System.IO.Path.GetExtension(DosyaYolu) == ".html")//Burada dosya yolumuzu belirtiyoruz.
                    {
                        string[] path = System.IO.Path.GetFileName(DosyaYolu).Split('-');//HaberID sini alıyoruz
                        Context.RewritePath("~/Sayfa2.aspx", "", "KategoriID=" + path[0], true);//Makale sayfamıza gönderiyoruz
                    }
                }

    NE GİBİ VE NERELERDE DEĞİŞİKLİK YAPMAM GEREK ? YARDIMCI OLURSANIZ SEVİNİRİM ÖNEMLİ BİR KONU !

    6 Ekim 2012 Cumartesi 08:19
  • string KATEGORIID = Request.QueryString["KategoriID"].ToString();

    burda sen ordaki ID yi alıp 

    select * from Tbl_Kategoriler where KategoriID=@KategoriID  

    burda o id yi göre veri çekiyorsun, eğer kaldırırsan ilk satır boşa çıkacak ve kullanılmaz olacak o yüzden ID yi kaldırmadan önce başka unique(eşsiz,tekrarlamayacak) bir değer kullanman gerekecek bu bir string olabilir ve verini kategori id ye göre değil o stringe göre çekeceksin ki onu kaldırabilesin, bilmem anlatabildim mi

    6 Ekim 2012 Cumartesi 21:19