Как импортировать URLExtension, чтобы он был доступен для всех Views & Ascx (Asp.NET MVC 2) - PullRequest
0 голосов
/ 05 мая 2011

Я использую класс расширения для извлечения изображений, CSS, сценариев и т. Д.

На уровне пользовательского интерфейса у меня есть мастер-страницы, виды (aspx) и частичные виды (ascx). Требуется ли импортировать <%@ Import Namespace="Resorts.Web.Helpers" %> внутри каждого Master, View & Ascx? Если я импортирую в Master, почему мои Views & Ascx не узнают об этом автоматически? Я делаю это неправильно?

namespace Resorts.Web.Helpers
{
    public static class UrlHelperExtension
    {
        public static string Image(this UrlHelper helper, string fileName)
        {
            return helper.Content("~/Content/Images/" + fileName);
        }

        public static string Stylesheet(this UrlHelper helper, string fileName)
        {
            return helper.Content("~/Content/CSS/" + fileName);
        }

        public static string Script(this UrlHelper helper, string fileName)
        {
            return helper.Content("~/Scripts/" + fileName);
        }

    }
}

1 Ответ

0 голосов
/ 06 мая 2011

Если вы хотите, чтобы он был доступен на всех или на большинстве ваших страниц, тогда использование директивы import - действительно неправильный способ сделать это.

Способ добавления доступного пространства имен находится в вашем файле web.config. Там должен быть раздел, как:

<system.web>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <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>
    </pages>
</system.web>

Просто добавьте Resorts.Web.Helpers в список пространств имен. Возможно, вам придется перестроить ваше приложение или перезапустить VS после этого, но теперь это сделает ваше пространство имен доступным в главных страницах, представлениях и партиалах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...