كيف يمكنني استرداد علامة التعريف المخصصة في صفحة؟

StackOverflow https://stackoverflow.com/questions/2362452

  •  23-09-2019
  •  | 
  •  

سؤال

لدي الرمز التالي:

List<HtmlMeta> metas = new List<HtmlMeta>();
foreach (Control c in this.Page.Header.Controls)
    if (c.GetType() == typeof(HtmlMeta))
    {
        HtmlMeta meta = (HtmlMeta)c;
        if (meta.Name == "CategoryID")
            strMeta = meta.Content;
    }

لقد قمت بإنشاء علامة التعريف المخصصة هذه:

<meta id ="CategoryID" name="CategoryID" content="35" />

أتقدم عبر الكود وكسر في if (meta.Name == "CategoryID")

يصل إلى علامة التعريف قبل ذلك ثم يعرض meta.name = "" ثم يخرج الحلقة. لا ترى علامة التعريف المخصصة الخاصة بي.

العلامة قبل هذا هو: <meta name="verify-v1" content="AtroutoUUTAiOHzlmZOap4a5YdzOByK5v9bzwpzPy60=" />

الآن قد تسأل لماذا أفعل هذا. أنا أستخدم dotnetnuke CMS ، أحتاج إلى وسيلة للمستخدم النهائي لوضع معلمة مطلوبة لاستعلام في رمز الواجهة الخلفية. لا يمكنني أن أضع أي شيء في عنوان URL ، مثل QueryString قبالة الرابط للوصول إلى الصفحة ، لذلك جربت علامة التعريف ، حيث يمكنهم إضافة هذا في إعدادات الصفحة (علامة التبويب) في DNN.

لقد حاولت ترك المعرف في العلامة والاسم العادل ، ولكن نفس المشكلة.

أنا أبحث عن حل بسيط وغير موارد.

أي نظرة ثاقبة لهذا أو الحل في DNN أو ASP.NET ستكون رائعة.

شكرا لك مقدما.

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

المحلول 2

إن حلي يعمل ، إنها عملية كيفية تقديم الصفحة في dotnetnuke.

نصائح أخرى

كيف تقوم بإضافة عناصر تحكم التعريف إلى الصفحة؟ كيف يتم إضافة علامة "التحقق-V1" فعليًا إلى الصفحة؟

أسأل لأن عناصر تحكم HTML العادية لا تظهر في مجموعة عناصر التحكم ، ما لم يكن لديهم runat="server" في إعلانهم ، أو يتم إضافتها إلى الصفحة ديناميكيًا من خلال رمز .NET.

إذا كانت العلامة الخاصة بك تبدو مثل هذا:

<meta name="CategoryID" value="<%=categoryId%>" />

بعد ذلك ، لن تتمكن من العثور على التحكم التعويضي بالطريقة التي تحاول.

يجب عليك ترك معرف العلامة ، لأن هذا لا يدعمه المواصفات.

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