Добавление пространств имен в представления ASP.NET MVC 3

Я попытался добавить пространства имен к configuration/system.web/pages/namespaces в web.config моего приложения ASP.NET MVC 3, чтобы использовать классы в этих пространствах имен в своих представлениях без необходимости использования @using, однако это не имеет никакого эффекта. Как добавить пространства имен в мои представления?

Ответ 1

Бритва MVC имеет другую область для пространств имен.

Посмотрите на второй файл web.config, который находится в папке "Представления" и таким образом добавьте пространства имен.

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <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="Telerik.Web.Mvc.UI;"/>
        </namespaces>
    </pages>
</system.web.webPages.razor>

Ответ 2

Я не уверен, почему это так flaky, но есть вероятность, что он на самом деле работает, но Visual Studio не узнает его, пока вы не закрываете и не открываете вид, в котором вы находитесь. Также убедитесь, что вы в файле web.config, который находится в каталоге представлений.

Ответ 3

Я использовал этот метод для включения файлов ресурсов в свои представления, но Razor не хотел брать мои классы. После некоторого притягивания волос я понял, что не изменил модификатор доступа в файле Resources.resx на общедоступный (он по умолчанию был создан как Internal). Как только я изменил его и перекомпилировал, я смог получить доступ к своим ресурсам из всех представлений.

Ошибка новичков, ненависть, чтобы это произошло, но, надеюсь, это сэкономит кому-то боль.