Мне нужно создать функцию, которая необходима только внутри одного файла cshtml. Вы можете думать о моей ситуации как о методах страницы ASP.NET, которые являются минимальными веб-сервисами, реализованными на странице, потому что они ограничены одной страницей. Я знаю о HTML-помощниках (методах расширения), но моя функция просто необходима в одном файле cshtml. Я не знаю, как создать подпись функции внутри представления. Примечание : я использую шаблонизатор Razor.
asp.net-mvc
asp.net-mvc-3
razor
Саид Нямати
источник
источник
@functions
методы, поэтому мне нравится этот ответ.почему бы просто не объявить эту функцию внутри файла cshtml?
источник
functions
решение обеспечивает большую гибкость для других типов возврата. Оба ответа получают +1 в моей книге, хотя они оба являются полезными лакомыми кусочками информации.<p>Welcome, @username.</p>
противreturn new HtmlString("<p>Welcome, " + Html.Encode(username) + ".</p>");
.@helper
в одном представлении не делает его доступным для других представлений. причина, по которой мне больше нравится @helper, заключается в том, что вы можете поместить html между фигурными скобками.@functions
не (легко) позволяет вам сделать это.@helper
и@functions
могут быть разделены между многими видами, и оба могут быть объявлены в и использоваться одним видом (и я лично нашел применение для них в обоих общих / отдельных сценариев). ИМХО, единственное практическое различие между ними заключается в том, что помощник вида добавляет синтаксический сахар для возврата визуализированных фрагментов HTML (или, что более уместно,HelperResult
экземпляров), тогда как функция представления обычно полезна только для возврата простых типов ссылок или значений.Если ваш метод не должен возвращать html и должен делать что-то еще, вы можете использовать лямбда-метод вместо вспомогательного метода в Razor
источник
Взгляните на декларативных помощников бритвы
источник
Если вы хотите получить доступ к глобальным переменным вашей страницы, вы можете сделать это:
источник
GetLoadingState()
здесь локальная функция.