2010-01-05 10 views
6

उत्पन्न करता है मेरे पास एक मास्टर पेज के अंदर एक साधारण पृष्ठ है (ठीक है, एक मास्टर में मास्टर में)।मास्टर पेज एक दूसरा शीर्षक टैग

शीर्ष मास्टर में मेरे पास टैग runat="server" है, जिसमें स्क्रिप्ट्स, स्टाइलशीट इत्यादि जैसी कई बिट्स और एक सामग्री प्लेसहोल्डर भी हैं। यहां कोई शीर्षक टैग नहीं है।

इस मास्टर का उपयोग करने वाले पृष्ठ में प्लेसहोल्डर के लिए सामग्री में <title>pagename</title> बिट शामिल है। मुझे वास्तव में इसे वहां सेट करना है।

दुर्भाग्यवश जब पृष्ठ प्रस्तुत किया जाता है तो मुझे अपना शीर्षक मिलता है जो कि सभी अच्छा है, लेकिन दूसरा खाली शीर्षक टैग भी मिलता है - मुझे लगता है कि .NET द्वारा वहां डंप किया गया है।

क्या यह दूसरा शीर्षक टैग आने से रोकने का कोई तरीका है?

उत्तर

16

स्मृति से, <head> पर runat = "server" डालने के कारण स्मृति से स्वचालित रूप से <title> जोड़ता है यदि कोई पहले से नहीं है।

मुझे लगता है कि (यह परीक्षण नहीं किया) है अगर अपने masterpage में आप

<head runat="server"> 
Blah 
<title runat="server" visible="false"></title> 
</head> 

कर masterpage के प्रमुख में स्पष्ट रूप से शीर्षक टैग की स्थापना और झूठे कार्यों के लिए दृश्यता सेट। मुझे लगता है।

आप पृष्ठ के स्तर

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:ContentPlaceHolder ID="titleContent" runat="server" /> 
    </title> 
</head> 

या,

पर शीर्षक सेट करने के लिए मास्टर पृष्ठ के स्तर पर गतिशील शीर्षक सेट करना चाहते हैं चाहते हैं:

+0

चालाक, कोशिश नहीं की, हालांकि मुझे संदेह है कि यह काम करेगा। शीर्ष मास्टर में खिताब के लिए एक अलग contentplaceholder जोड़ने समाप्त हो गया <प्लेसहोल्डर यहाँ ... काम करता है ठीक धन्यवाद किसी भी तरह – nat

+0

मैं सिर्फ एक ही समस्या थी और यह सुधार की कोशिश की है। मैं पुष्टि कर सकता हूं कि यह काम करता है। बहुत बढ़िया। – draconis

+0

ehad टैग से runat = "server" को हटाने से भी काम मिल रहा है। – Ondra

4

आपको सिर पर <title> मैन्युअल रूप से डालने की आवश्यकता नहीं है।
कोड द्वारा Page.Title = "title" सेट करें, या <%@ Page Title="My Title" .. %> मार्कअप द्वारा सेट करें। एएसपी.नेट बाकी का पता लगाएगा, और सही शीर्षक डालेगा।

1

मैं का उपयोग कर लगता है।

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:Literal ID="litPageTitle" runat="server"></asp:Literal> 
    </title> 
</head> 

यह सुनिश्चित करने का बेहतर तरीका है कि खाली दूसरा शीर्षक टैग जेनरेट नहीं किया गया है।