سؤال

آمل أن أحدا يمكن أن تساعدني.لقد كنت أحاول كتابة مساعد HTML مخصص لتطبيق MVC الخاص بي.أولاً على الإطلاق، حاولت مع اختبار واحد، والذي يكتب فقط

علامة للمعلمة المحددة.الأمر هو أنه لا يعمل إلا إذا قمت باستيراد مساحة الاسم بشكل صريح.لقد قرأت كثيرًا وبينما قرأت، يجب أن تظهر هذه الطريقة بدون مساحة اسم الاستيراد مثل هذا:

<%=Html.Prueba("This is a paragraph") %>

لكن هذه الطريقة، Prueba، لا تظهر في VS Intellisense.

صفي هو ما يلي:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace EasyGoCostaRica.Helpers
{
    public static class ViewsHelpers
    {
        //This method is just for testing. Is not working :(
        public static string Prueba(this HtmlHelper helper, string param1)
        {
            return string.Format("<p>{0}</p>", param1);
        }
    }

}

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

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

المحلول

مساحة الاسم لا بد وأن أعلن/المستوردة في مكان ما.يمكنك القيام بذلك إما:

  • داخل الصفحة نفسها
  • الصفحة الرئيسية أو
  • داخل ملف web.config

إذا كنت تريد شيئا عالمي من الأفضل تكوين مساحة الاسم الخاصة بك في web.config.

يستخدم <@import...> التوجيه لأول اثنين و <namespace> عنصر التكوين لآخر واحد.

نصائح أخرى

ويمكنك إضافة مساحة الاسم إلى الملف web.config ومن ثم سوف لا يكون لديك ما يدعو للقلق في وقت لاحق.

وداخل الملف web.config الخاص بك، يجب أن نرى شيئا من هذا القبيل:

<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
</namespaces>

وأضيف خط مع مساحة الاسم الخاصة بك.

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

لسبب ما في الاستوديو البصري 2013 لديك إلى إعادة تشغيل مقابل من أجل التغييرات في الملف web.config ليتم تطبيقها.

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