سؤال

لإدارة عنوان الصفحة في الصفحة، لدي صفحة رئيسية حيث أتناول quarityplaceholder.

  <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" />  </title>

وعلى كل صفحة أكتبها

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">Some Title Here
</asp:Content>

الآن عميلي يسألني بإزالة العنوان على جميع الصفحة والحفاظ عليه في الصفحة الرئيسية ولكن لا يقوم بإزالة رمز حامل Place Content على جميع الصفحة في الصفحة الرئيسية والصفحة الرئيسية حتى يكون في المستقبل إذا كان أي شرط ثم يمكننا إدراج البيانات إليهم. لذا فإن مشكلتي هي دون إزالتها على الصفحة الرئيسية والصفحات التي لا أستطيع وضع العنوان على صفحة الماجستير. كيف يمكنني التعامل مع هذا الموقف؟

هل كانت مفيدة؟

المحلول

شكرا يا شباب .. حصلت على حل

إذا كنت ترغب في تعيين جزء من العنوان من داخل الصفحة الرئيسية. على سبيل المثال، قد ترغب في إنهاء عنوان كل صفحة لاحقة، "- mysite".

إذا جربت هذا (لاحظ - mysite تعالج):

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

وتشغيل الصفحة، ستجد أن mysite لم يتم تقديمه. يبدو أن هذا هو Quirk من عنصر التحكم HTMLHEAD. وذلك لأن علامة العنوان ضمن عنصر التحكم HTMLHEAD هي الآن تحكم الآن.

الإصلاح بسيط جدا. أضف النص إلى LiteralControl مثل ذلك.

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

نصائح أخرى

إذا كنت تريد حلا جيدا لتجاوز عنوان الصفحة:

إنشاء فئة خاصة بك والتي ترث من system.web.mvc.viewpage.

هل ترث صفحات الرأي الخاصة بك من تلك الفئة:

اكتب معالج page_load في فصلك الجديد الذي يفعل شيئا مثل هذا:

Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
   Me.Title = "Company Name | " + Page.Title
End Sub

لا تحتاج أيضا إلى حامل مكان للمحتوى لتغيير العنوان. الu003Chead> علامة هي بالفعل عنصر تحكم خادم RunAT. إعداد الصفحة.title في تحميل الصفحة (أو الحدث السابق) يعمل بشكل جيد فقط.

يمكنك أيضا وضع علامة البرنامج النصي لخادم RunAT في صفحتك الرئيسية لإنجاز هذه المهمة أيضا.

أسهل طريقة:

حرك الحالي ContentPlaceHolder في مكان ما إلى HTML الخاص بك، ولفه في <asp:PlaceHolder runat="server" visible="false"/>. وبعد عند حاجةها لاحقا، ما عليك سوى نقل العقيد Contentplace مرة أخرى.

استخدم حدث ONPRERENDER في الصفحة الرئيسية لتعيين العنوان، ويتسبب في ما تم تعيينه في كل صفحة.

لماذا لا تضيف سمة مرئية = False إلى ContentPlotholder of Page الماجستير

أعتقد أن هذه هي أسهل طريقة للتعامل مع وضعك.

الترميز السعيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top