كيف يمكنني استرداد علامة التعريف المخصصة في صفحة؟
-
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%>" />
بعد ذلك ، لن تتمكن من العثور على التحكم التعويضي بالطريقة التي تحاول.
يجب عليك ترك معرف العلامة ، لأن هذا لا يدعمه المواصفات.