Могу ли я иметь частные функции или частные декларативные помощники внутри декларативного помощника?

Возможный дубликат:
Использование @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 в этом файле.


person Peter Marks    schedule 25.11.2011    source источник
comment
Не то же самое, что и другой вопрос. Это объясняет, почему кто-то хотел бы использовать этот подход - обоснование желания иметь такую ​​​​функцию. Кстати, вывод из него тот же.   -  person Peter Marks    schedule 30.11.2011
comment
Это не то же самое, что и другой вопрос, так как другой вопрос ищет помощников, доступных только для некоторых представлений, кроме декларативного файла (только не для всех представлений), в то время как этот ищет помощники, которые являются частными только для декларативных помощников ( другими словами, помощники или функции, локальные для файла, как и в обычном представлении).   -  person yoel halb    schedule 06.06.2013
comment
Вы действительно тестировали использование частных функций в папке App_Code? согласно stackoverflow.com/questions/4760783/ общедоступные функции должны работать в папке App_Code, я еще не тестировал частные, но похоже, что они должны работать.   -  person yoel halb    schedule 06.06.2013