2014-01-31 3 views
1

Из учебников, которые я прочитал, функции всегда содержат код C#. Это всегда так, или у нас есть синтаксис Razor в функциях? С другой стороны, можем ли мы использовать код C# в помощниках?В чем разница между функцией и помощником в Razor?

+0

Я не уверен, что вы просите. У вас есть образец кода, который вы можете отправить? –

+0

Можно ли вызвать функцию @RenderPartial() в функции Razor? Могу ли я вызвать Request.Url.Host.ToLower(); в помощнике Razor? – janinaj

ответ

2

Разница между бритвенных хелперов и функции выглядит следующим образом:

Помощник многоразовый кусок кода, используемый для рендеринга HTML, возвращаемый тип всегда HelperResult.

Функция - статическая утилита, которая может быть вызвана в любом месте из вашего файла бритвы и может иметь разные типы возвращаемых данных.

Хотя это для WebMatrix эта статья здесь должен очистить его для вас:

http://www.mikesdotnetting.com/Article/173/[email protected]@Functions-In-WebMatrix

5

Используйте функции для обработки и хелперы для отображения.

функции используются для определения C# код, и только код C#, который имеет отношение к вашей странице. Место, где вы могли бы выполнять некоторые (предпочтительно небольшие) операции с данными и т. Д. Конечно, это действительно должно быть на уровне контроллера или службы, а затем передаваться вашей модели.

Между тем помощники для фактического отображения. Способ написать HTML как HTML без необходимости использовать простые строки, TagBuilders или другие беспорядочные тактики C#, чтобы выплевывать HTML.

Да, они «многоразовые», как говорили другие. Так будет статический метод C# на вашей странице ... (риторический), почему бы просто не сделать это?

Суть заключается в том, чтобы иметь возможность создавать/редактировать HTML в более естественной среде HTML.

И да, вы можете иметь C# код внутри ваших помощников с помощью обычного старого синтаксиса @ бритвы. Но опять-таки следует ограничиться отображением целей по соглашению. IE: Прокрутка списка для создания элементов и т. Д.

Смежные вопросы