الشيء المحرج هو أنني كتبت جزءًا من التعليمات البرمجية قبل عطلة عيد الربيع. لا أعرف السبب. يمكن لـ ASPX تحميل الكود في ASCX.cs، لكن لا يمكنني تحميل الملف المصدر في ASCX لأنني لا أستطيع الهدوء بعد حل هذه المشكلة، عدت إلى العمل اليوم ووجدت أن سبب المشكلة هو كتابة أمر @Register الخاص بـ ASPX بشكل غير صحيح.
يجب كتابة الطريقة الصحيحة على النحو التالي:
<%@ سجل TagPrefix="myTagPrefix" TagName="ConfigNavigation" Src="/Controls/ConfigNavigation.ascx" %> لكنني كتبته على النحو التالي:
<%@ Register TagPrefix="myTagPrefix" Namespace="MyWEB.Controls" Assembly="MyWebProject" %> الطريقة الأخيرة في الكتابة ستؤدي فقط إلى تحميل الفئة المقابلة لملف cs، ولكن ليس المحتوى الموجود في ascx، وبالتالي تظهر المشكلة لقد واجهت هنا.
فيما يلي ملخص لعدة طرق لكتابة الأمر @Register، والذي تم تجميعه بالرجوع إلى http://msdn.microsoft.com/zh-cn/library/c76dd5k1.aspx الخاص بـ MSDN:
<%@ قم بتسجيل tagprefix="tagprefix" namespace="namespace" Assembly="assembly" %>
<%@ سجل tagprefix="tagprefix" namespace="namespace" %>
<%@ تسجيل tagprefix="tagprefix" tagname="tagname" src="pathname" %>يتم وصف كل سمة على النحو التالي:
tagprefix
اسم مستعار عشوائي يوفر مرجعًا قصيرًا لمساحة اسم العلامة المستخدمة في الملف الذي يحتوي على التوجيه.
مساحة الاسم مساحة اسم عنصر التحكم المخصص الذي يتم تسجيله.
tagname أي اسم مستعار مرتبط بالفئة. يتم استخدام هذه الخاصية فقط لعناصر تحكم المستخدم.
التجميع هو التجميع الموجود في مساحة الاسم المرتبطة بسمة tagprefix.
لا يمكن أن يتضمن اسم التجميع ملحق الملف. لاحظ أيضًا أنه في حالة فقدان سمة التجميع، يفترض محلل ASP.NET وجود التعليمات البرمجية المصدر في مجلد App_Code الخاص بالتطبيق. إذا كنت تريد تسجيل التعليمات البرمجية المصدر لعنصر التحكم على الصفحة دون تجميعها، فضع التعليمات البرمجية المصدر في المجلد App_Code. يقوم ASP.NET بتجميع الملفات المصدر بشكل ديناميكي في المجلد App_Code في وقت التشغيل.
الموقع (نسبي أو مطلق) لملف تحكم مستخدم ASP.NET التعريفي المرتبط بـ src وtagprefix:tagname.
يمكن أن تكون قيمة السمة src إما مسارًا نسبيًا أو مسارًا مطلقًا من الدليل الجذر للتطبيق إلى الملف المصدر لتحكم المستخدم. لسهولة الاستخدام، يوصى باستخدام المسارات النسبية. على سبيل المثال، افترض أن كافة ملفات التحكم الخاصة بالمستخدم الخاصة بالتطبيق الخاص بك مخزنة في الدليل الفرعي Usercontrol الخاص بالدليل الجذر للتطبيق. لتضمين عنصر تحكم المستخدم في ملف Usercontrol1.ascx، قم بتضمين ما يلي في توجيه @Register:
Src="~usercontrolusercontrol1.ascx" يمثل حرف التلدة (~) الدليل الجذر للتطبيق