среда, 9 ноября 2016 г.

Добавление глобального Html-хелпера


Есть проект Asp.net mvc (не знаю, как версию посмотреть, воздан в Visual Studio 2013)
Встала задача создать Html-хелпер, глобально доступный для всех cshtml-видов проекта
Написал класс вида:
namespace Aproject.Helpers
{
    public static class WebHelpers
    {
        public static string GetDateString(this HtmlHelper helper, DateTime date)
        {
            return date.ToLongDateString();
        }
    }
}
в cshtml-файле вида:
добавил сверху:
@using Aproject.Helpers
после этого смог использовать мой метод:
@Html.GetDateString(Model.Date)

но хотелось избавиться от необходимости перечислять в начале страницы все юзинги.
какое-то время ковырялся в гугле, в итоге выяснил:
нужно в Web.Config, который лежит в папке Views, в секцию
<pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
добавить ссылку на наше пространство имен.
Но и это еще не все! чтобы IntelliSence одуплился, нужно закрыть и открыть проект (я просто закрыл и переоткрыл вижуал-студию). Пока этого не сделаешь, всё, объявленное в этих пространствах имен, будет подчеркнуто красным.

Комментариев нет:

Отправить комментарий