Комментарии 12
Спасибо за простое изложение. Некоторые слишком переморачиваются, когда пишут об этом.
ПыСы.
int Now
{
get { return DateTime.ToString(«dd MMMM») }
}
Аж глаза режет. Нискомпилится 8-)
ПыСы.
int Now
{
get { return DateTime.ToString(«dd MMMM») }
}
Аж глаза режет. Нискомпилится 8-)
Это они из T4 идею сперли :)
у хелперов есть некоторые недоделки
1) они не могут быть generic's — это просто недоделка.
2) они не могут быть extension методами (в частности — html-helper'ами)
1) они не могут быть generic's — это просто недоделка.
2) они не могут быть extension методами (в частности — html-helper'ами)
2 пункт не совсем понял.
а зачем им быть extension методами?
а зачем им быть extension методами?
примерно затем же, зачем быть extension обычным, C# овским методам. Удобство использования.
делать расширения System.Web.Mvc.HtmlHelper, имхо не имеет смысла
писать не @Helpers.Qwe(...), а @Html.Qwe(...)?
можно придумать теоритический пример, где это может понадобиться… но ничего полезного мне на ум не приходит :)
писать не @Helpers.Qwe(...), а @Html.Qwe(...)?
можно придумать теоритический пример, где это может понадобиться… но ничего полезного мне на ум не приходит :)
Код, генерирующий разметку «традиционно» делают extension-ом к классу HtmlHelper/HtmlHelper<>. Так делают разработчики MVC, так же делают разработчики сторонних продуктов, см тот же телерик. @helper тоже генерирует разметку. По моему достаточно логичным было бы, чтобы @helper'ы тоже можно было бы сделать extension методами.
назвать его, к примеру, Helpers.cshtml, положить его в AppCode
Извините за глупый вопрос, но можно чуть поподробнее про «положить в AppCode»? Куда надо положить/что сделать, чтобы использовать хелперы из Helpers.cshtml в другой вьюшке?
да, всё до смешного просто :)
Смутило то, что папки App_Code по умолчанию в проекте нет. Добавил, положил туда хелпер — всё заработало.
Правда, появился вопрос, что делать, если я хочу расшарить хелперы только между двумя-тремя вьюшками — то есть не хочу их добавлять в глобально-доступный Helpers из App_Code.
Что-нибудь типа @using LocalHelperNamespace, но какой у этого хелпера будет неймспейс?
Смутило то, что папки App_Code по умолчанию в проекте нет. Добавил, положил туда хелпер — всё заработало.
Правда, появился вопрос, что делать, если я хочу расшарить хелперы только между двумя-тремя вьюшками — то есть не хочу их добавлять в глобально-доступный Helpers из App_Code.
Что-нибудь типа @using LocalHelperNamespace, но какой у этого хелпера будет неймспейс?
В продолжение вопроса про хелперы в App_Code.
Столкнулся с тем, что хелперы там не знают об Url-хелпере (System.Web.Mvc.WebViewPage.Url) и об Html-хелпере. Точнее, о последнем знают, но не из System.Web.Mvc, а System.Web.WebPages.
Вопрос: можно ли для хелперов в этой папке задать каким-то образом настройку, чтоб там работали стандартные хелперы?
Столкнулся с тем, что хелперы там не знают об Url-хелпере (System.Web.Mvc.WebViewPage.Url) и об Html-хелпере. Точнее, о последнем знают, но не из System.Web.Mvc, а System.Web.WebPages.
Вопрос: можно ли для хелперов в этой папке задать каким-то образом настройку, чтоб там работали стандартные хелперы?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Declarative HTML Helpers