Возможный дубликат:
Использование @helpers из другого представления в Razor ASP.Net MVC3
Моя среда: ASP.NET MVC3 с Razor.
У меня есть некоторая повторно используемая логика представления в декларативных помощниках в каталоге App_Data
, которые определены как @helper bar() { /* markup */ }
и являются общедоступными для использования любым представлением.
Кроме того, в обычном представлении Razor я могу написать «приватные» помощники как таковые:
@functions {
public IHtmlString foo() { return new MvcHtmlString("foo"); }
}
Я хотел бы иметь «частные» функции в моих декларативных помощниках, ИЛИ я хотел бы иметь «частные» декларативные помощники в моих файлах декларативных помощников. Альтернативой является написание обычных вспомогательных классов, но в этом случае я предпочитаю разметку, так как она менее подробна и ее легче поддерживать.
Зачем вам это делать? У вас есть представление, и вы хотите добавить разметку; это делается путем ссылки на декларативный помощник. Но этот DH находится в файле, полном других DH, которые используют общую разметку. Итак, вы хотите переместить всю эту общность в одно место: «частную» декларативную функцию/помощник, которую могут видеть только DH в этом файле.