Osman KURT

Kendime Not

Dinamik MetaTag Uygulamaları .Net 4.0

Arakadaşlar ezelden beridir yapılan sitelerin bir amacı vardır. Bu amaçlara ulaşmak içinde insanlara ulaşması gerekir.İnsanlarada ilk olarak reklam ve arama motorlarında anahtar kelimeler sayesinde arandığında bulunmakla doğru orantılıdır. Bunun için herşey sitenizin en üst kısmında bulunan kimlik alanı dediğimiz mataTag alanında bulunmak zorundadır. Mantıklı olan dinamik bir yapıya sahip olmak ve her saferinde kod bloğunda kaybolmamak için dinamik bir yapı oluşturulur ve admin paneli dediğimiz veriatabanı yönetim panelinden çok kısa bir sürede bu işlem gerçekleştirilir. Alt kısım da vereceğim kodlar bu işlemi çok güzel bir şekilde yerine getirmektedir. tek yapmanız gereken veritabanın da tablonuzu oluşturmak ve vereceğim kodu sayfanıza yapıştırmak.

Veritabanı alanları:

Title
Keywords
Description

SqlConnection scon = new SqlConnection("server=.;database=dbismi;uId=dbkullanici;pwd=sifre"); 
SqlCommand scom = new SqlCommand("select Title,Keywords,Description from SiteAyarlari", scon); 
if (ConnectionState.Closed == scon.State) 
scon.Open(); SqlDataReader dr = scom.ExecuteReader(); 
while (dr.Read()) 
{
Page.Title = dr["Title"].ToString();
Page.MetaKeywords = dr["Keywords"].ToString(); 
Page.MetaDescription = dr["Description"].ToString(); 
} 
scon.Close();

şeklinde dinamik olarak sayfalarında uygulayabilirsin.

Sonraki makalemizde görüşmek dileğiyle;

Osman KURT

Yorumlar (14) -

  • Cenk

    6.2.2011 17:38:17 | Yanıtla

    Bu Visual Studio 2010 ve framework 4.0 la gelmiş bir özellik  galiba

    Eksiden HtmlMeta ve HtmlTitle Tipinde Değişken Yaratıp Daha Sonra Verileri Girerek Page ' în Headerine Ekliyorduk..

    Ama Böyle Daha Kolay Bir Hale Gelmiş

    • osmankurt

      7.2.2011 03:23:17 | Yanıtla

      Evet Cenk bende öyle senin dediğin gibi yapıyodum ama bunu yeni öğrendim. Daha kolay dimi...Smile

  • Serkan KILIÇ

    16.4.2011 04:44:59 | Yanıtla

    üstat öncelikle makale için eline sağlık. ama şöyle bir sorum olacak ben sayfalarımda masterpage kullanmıyorum yapmış olduğum tüm web sitelerinde users control kullanıyorum bu yapıyı kullanmış olduğum users controllerde kullanabilirmiyim ? diğer bir sorum ise veritabanına bağlanıyoruz dr ile title'i çekiyoruz bunu literatur yada label ile <title>Bu alanda mı çekmemiz lazım ? </title>

    • osmankurt

      17.4.2011 04:13:00 | Yanıtla

      Merhaba Serkan;
      Sorunu kısaca şöyle cevaplayım. Bu yazan kodların aynısı nı masterpage sayfasının altın da değilde metatag diye bir usercontrol oluştur orada yaz değişen bir şey olmayacak. Yine sorunsuz çalışacak merak etme. Yine aynı şekilde veritabanına bağlanacaksın ekstra bişey yapmana gerek yok.
      Ayrıca title çekerken de hiçbir şekilde label yada literatur kullanmıyorsun. zaten direk sınıflarla kendi title odaklanıyor.
      Kısacası tek yapman gereken bu kodları usercontrol sayfasının cs tarafına eklemek ve istediğin sayfada kullanmak, bu kadar basit.

  • Serkan kılıç

    25.5.2011 04:38:08 | Yanıtla

    bu konu hakkında birşey daha öğrenmek istiyorum üstat. sorunum şu ben bu yapıyı ürünler.aspx sayfama uygulamak istesem ve a ürününe tıklandığında titlede'a a ürününün adını yazdırmak istiyorum bu işlemi nasıl yapabilirm?

    • osmankurt

      25.5.2011 05:36:04 | Yanıtla

      Olay basit Serkan üst kısımda ki Page.Title = dr["Title"].ToString();  yazan kısım varya ürünlerin detayını göstereceğin sayfada veritabanına bağlanıcaksın (ürünleri tuttuğun tabloya) aynı makalede yazan işlemleri yapacaksın yalnız title yazdırdığımız yere Page.Title = dr["Ürün adı alanı buraya"].ToString(); olacak şekilde değiştiriceksin. istersen her ürüne ayrı keywords ve descriptions bile girebilirsin. Ben bir projemde kullandım ve çok güzel oldu.Sen dene istersen problem yaşarsan yardımcı olurum.

  • Onuralp

    28.5.2014 23:15:44 | Yanıtla

    Mrb, Hocam verileri tek tek alıyor yani enson eklenen veriye göre biz bunu mesela "Keywords" de bulunan bütün yazıları alamazmıyız baştan itibaren sona dogru

    • osmankurt

      29.5.2014 14:06:53 | Yanıtla

      Merhaba Onur,
      Soruyu tam olarak algılayamadım desem Smile

      • onur

        29.5.2014 16:30:41 | Yanıtla

        Smile benim soru soruş tarzımda problem var Smile
        Bu örnekte veri tabanina en son eklenen title, keywords ve Description meta tag bölümune dahil oluyor. Enson eklenen degilde  veri tabaninda keywords veya description ilk eklenenden son eklenene kadar nasil yazdira biliriz yani 10 tane yazi eklemissem 1.  İtibaren 10 . ya  kadar göstermek  istiyorum ?

        • osmankurt

          30.5.2014 09:11:14 | Yanıtla

          Merhaba Onur,
          Öncelikle öz eleştirin için teşekkürler Smile

          Soruna gelince cevabı çok basit, sorguyu bütün içerikleri çekecek şekilde ayarlayacaksın.

          Select * From Tablo gibi ve alt kısımıda bulunan satırı;

          Page.MetaKeywords = dr["Keywords"].ToString();

          bu satırı alt alanda ki gibi yazman gerekecek

          Page.MetaKeywords += dr["Keywords"].ToString()+" "+;  

          • Onur

            1.6.2014 00:24:09 | Yanıtla

            Çok teşekkür ederim hocam Smile

  • burhan

    29.3.2016 20:52:37 | Yanıtla

    merhaba bir proje yaptım ama deişken title da kaldım aşağıdaki kodu yazdım ama sadece son eklenen kayıtı çekiyor bütün konulara ayrı çekmesini istiyorum

            SqlConnection baglanti = system.baglan();
            SqlCommand scom = new SqlCommand("select SayfaAdi from Sayfalar", baglanti);
            if (ConnectionState.Closed == baglanti.State)
                baglanti.Open(); SqlDataReader dr = scom.ExecuteReader();
            while (dr.Read())
            {
                Page.Title = dr["SayfaAdi"].ToString();

            }
            baglanti.Close();

    kodum bu ben bütün ürünleri farklı şekilde çekmesini istiyorum sql bağlantılarını yapıp bu şekilde yazınca sadece tek kayıt cekiyor nasıl yapabilirim.

    • yusuf

      13.4.2017 09:33:41 | Yanıtla

      <aspLaughingataList id="yusufyusuf" runat="server">
      <Itemtemplate>
           <a href='blogdetay.aspx?id=<%#Eval("id") %>'>
      <asp:Label runat="server" Text='<%#Eval("title") %> ></asp:Label>
           </a>
      </Itemtemplate>

      </aspLaughingataList>

      head taglarının arasına bunu yapıstırırsan id ye gore tıtle degısecektır. bunu keywords ıcın felan gelıstırebılırsın

  • burhan

    29.3.2016 23:13:28 | Yanıtla

    merhaba bir proje yaptım ama deişken title da kaldım aşağıdaki kodu yazdım ama sadece son eklenen kayıtı çekiyor bütün konulara ayrı çekmesini istiyorum

            SqlConnection baglanti = system.baglan();
            SqlCommand scom = new SqlCommand("select SayfaAdi from Sayfalar", baglanti);
            if (ConnectionState.Closed == baglanti.State)
                baglanti.Open(); SqlDataReader dr = scom.ExecuteReader();
            while (dr.Read())
            {
                Page.Title = dr["SayfaAdi"].ToString();

            }
            baglanti.Close();

    kodum bu ben bütün ürünleri farklı şekilde çekmesini istiyorum sql bağlantılarını yapıp bu şekilde yazınca sadece tek kayıt cekiyor nasıl yapabilirim.

Loading