سؤال

اليوم ، وجدت ميزة لطيفة جدا تعطيني القدرة على إضافة مساعد كشمل.لتكون قادرة على القيام بذلك ، يجب أن أضع ملف كشمل في مجلد باسم 'أب_كود' ثم إضافة إلى رمز يشبه ذلك:

@using System.Security.Policy

@helper jQuery(){
   if (System.Diagnostics.Debugger.IsAttached)
   {
        <script src="@Url.Content("~/Scripts/JQuery/jquery-1.7.2.js")" type="text/javascript"></script>
   }
   else
   {
        <script src="@Url.Content("~/Scripts/JQuery/jquery-1.7.2.min.js")" type="text/javascript"></script>
   }
}

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

"الشبكةالخطأ:500 خطأ في الخادم الداخلي - http://localhost / [ميناء]...

لدي بالفعل رمز في مجلدات أخرى من مشروعي.

يجب أن يكون لنقل كل ما عندي من التعليمات البرمجية في مجلد 'أب_كود' أو هل هناك أي خدعة للحفاظ على هيكل بلدي القائمة ولكن مع هذا المجلد الجديد' أب_كود'?

يعطيكم الصّحة.

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

المحلول

لا يمكنك استخدام المساعدين داخل المساعد بحيث لا تكون مفيدة كما كنت قد فكرت في البداية: -)

أشياء مثل Html و Url لا وجود لها داخل تلك الوظائف المساعد.لذلك إذا كنت بحاجة إلى استخدامها ، فسيتعين عليك تمريرها كمعلمات:

@using System.Web.Mvc
@using System.Security.Policy

@helper jQuery(UrlHelper urlHelper)
{
   if (System.Diagnostics.Debugger.IsAttached)
   {
        <script src="@urlHelper.Content("~/Scripts/JQuery/jquery-1.7.2.js")" type="text/javascript"></script>
   }
   else
   {
        <script src="@urlHelper.Content("~/Scripts/JQuery/jquery-1.7.2.min.js")" type="text/javascript"></script>
   }
}

وعند استدعاء تمرير مثيل أورلهيلبر الحالي لذلك:

@Foo.jQuery(Url)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top