سؤال

السؤال بسيط كما هو مذكور في العنوان: هل هناك طريقة لاستخدام المساعدين الحلاقة خارج "App_Code"؟

مثال (ملف htmlex.cshtml): giveacodicetagpre.

أسأل هذا لأنني لا أملك أي شيء آخر في app_code؛أريد أن هيكل مشروعي مختلفا بعض الشيء.

شكرا.

تحديث: لا أريد أي نوع آخر من الامتدادات.أنا مهتم بمساعدات الحلاقة النقية فقط كما يتحدث سكوت هنا: http://weblogs.asp.net/scottgu/2011/05/12/asp-net-mvc-3-and-the-HELPER-SYNTAX-INITE-RAZOR.ASPX

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

المحلول

السؤال بسيط كما هو مذكور في العنوان: هل هناك طريقة وجود المساعدين الحلاقة خارج "app_code"؟

لا، ليس هناك.

نصائح أخرى

لا تقل أبدا ...

الطريقة الأولى: (للاستخدام في مشروع تطبيق ويب)

مجرد إضافة حدث ما قبل المبنى لنسخ ملفك في مجلد App_Code.

(p> (ولكن نظرا لأن الملف ربما يجب أن يتم تضمينه في المشروع، يمكنك إضافة ملف فارغ بنفس الاسم إلى DIR APP_CODE DIR، ثم لديك حدث الإنشاء لتحديثه.)

(ملاحظة، أنه حتى إذا وضعت الملف أصلا في مجلد App_Code، فلن تحصل على التحسس الذكي حتى بناء المرة الأولى، لذلك ليس هناك فرق.)

الطريقة الثانية: (للاستخدام في مكتبة فئة، حيث يكون مشروع بدء التشغيل تطبيق ويب)

في مكتبة فئة، فإن مجلد App_Code ليس أي شيء خاص، لذلك من أجل أن تكون قادرا على الحصول على صفحة المساعد العالمية، يتعين علينا تجاوز رمز الحلاقة، حيث أنه مشفرة صعبة لجعل المساعدين العالميين فقط من أجل التعليمات البرمجية في مجلد app_code.

مزيد من مزيد من تصميم رمز الحلاقة بحيث يقوم المساعدون العالميون بإنشاء مساحة اسم تستند إلى المسار الكامل، وهو أمر غير مهتم به.

بعد كل ما نبقى مع مشكلة، لا يوجد أي intrisense متاح، لذلك لتجنب كل هذه المشاكل، لقد كتبت التعليمات البرمجية التالية، على افتراض أن:

  1. ملفات .cshtml (أو VBHTML) يتم نسخها إلى دليل إخراج المشاريع النهائية
  2. قمت بإضافة ملف .cs (أو .vb) بنفس اسم اسم الملف المساعدين العالميين، وقم بتعيين إجراء بناء على "ترجمة"، (سيتم الالتصاق به هذا الملف عند بدء التشغيل لتوفير IntelliSense)
  3. لديك لتسجيل الإصلاح Startupclass في ملف AssemagedInfo.cs
  4. عليك أن تحل محل في طريقة PreaPplicationStartupcode.start ()، لإعطاء المسار النسبي إلى صفحة المساعدين العالميين في مجلد BIN، بترتيب التبعية (أي إذا كان أحد ملفات المساعد العالمية يستخدم المساعدين في الآخر ملف ثم يجب إدراجه بعد ذلك).
  5. في فئة customrazorcodehost، عليك اختيار الطريقة الصحيحة ل postprocessgeneratedcode () المناسب لإصدار MVC مثبت

    هنا هو الرمز (ولكن سيتعين على المرء إضافة البيانات المناسبة "باستخدام"): giveacodicetagpre.

    ولكن لاحظ أنه إذا كان هناك خطأ في بناء جملة في ملف .cshtml، فسوف يكون لديك مشاكل في ترجمة المرة القادمة (نظرا لأن ملف .cs الذي تم إنشاؤه سيحصل على أخطاء ترجمة)، ومع ذلك يبدو أن Visual Studio يحتوي على مشاكل في تحديد المشكلة.

    أيضا في بعض الأحيان يتم تجميع التعليمات البرمجية المترجمة من Build آخر (مترجمة من ملف .cs)، في بعض الأحيان تعزز مع ملف .ctml محدث حديثا.

    لذلك أود أن أوصي بإضافة حدث ما قبل المبنى لاقتطع الملف giveacodicetagpre.

    يمكنك الذهاب أكثر تطورا وتفعل ذلك فقط إذا تم تغيير ملف .cshtml (وهذا ينطبق أيضا على التعليمات البرمجية التي كتبتها أعلاه).

استخدم مولد الحلاقة التمديد على طريقة عرض مع المساعدين في الداخل وسوف تولد الرمزعرض قبل تجميع الوقت.يعد رمز العرض الذي تم إنشاؤه جزءا من مشروعك وتجميعه في التجميع، حتى تتمكن من وضع ملف الرؤية في أي مكان واستخدام المساعدين في أي مكان، حتى من اختبار الوحدة.

بالتأكيد، يمكنك وضعها في أي مكان في التعليمات البرمجية أو بنية المشروع.في الملف الذي تقوم بإنشاء مساعدك، تأكد من تضمين استخدام System.web.mvc.

ثم تمد فقط فئة المساعد مثل هذا: giveacodicetagpre.

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