12 Aralık 2012 Çarşamba

Aspx Html Çift Title Sorunu

Aspx kullanarak oluşturulan web sitelerinde işimiz yarayan MasterPage'den kaynaklı olarak bir duplicate <title> tag problemi yaşıyor olabilirsiniz. Bunun başlıca sebebi, master sayfasının <head> tagleri arasında bulunan ContentPlaceHolder aslında. Her bir sayfada farklı bir title kullanmak istediğimizde <title>Sayfa Bilgisi</title> kodunu master sayfadaki <head> tagi arasına koymak yerine master sayfasındaki <head> tagi içerisine bir adet ContentPlaceHolder atarız. Sonrasında oluşturduğumuz sayfada bu ContentPlaceHolder'ın içeriğini koyacağımız yere <title> tagimizi koyarız. Bu işlem, sayfa render edildiğinde biri boş olmak üzere iki adet <title> tagine sebep olmaktadır. Bunun sebebi, server tarafında çalışan ve <head> içerisinde bulunan ContentPlaceHolder'ın, <title> tagini bulamayıp kendisinin ekstra bir adet daha üretmesidir.

Sorunun çözümü ise basit. Title bilgisini <title> tagi arasına koymak yerine sayfanın en tepesindeki <%@ Page Title=""... içerisine koymak. Sırasıyla sorunlu kod ve düzeltilmiş kod aşağıdaki gibi olmalıdır.

Hatalı Kod:
<%@ Page Title="" Language="C#" MasterPageFile="~/Mstr.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <title>BASLIK</title>
     ...
</asp:Content>


Doğru Kod:
<%@ Page Title="BASLIK" Language="C#" MasterPageFile="~/Mstr.master" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    ...
</asp:Content>

( aspx, .net, <title>, <head>, çift title, contentplaceholder, masterpage, content, runat="server" )



Hiç yorum yok:

Yorum Gönder