блок контента на сайтах asp.net и различия между помощниками - PullRequest
1 голос
/ 18 марта 2011

В структуре веб-страниц asp.net, в чем разница между использованием блока контента и помощника?

Похоже, что они оба используются для вывода HTML на несколько страниц. Оба могут содержать код и оба могут передавать параметры.

Есть ли другие различия? Когда вы должны использовать помощник против блока контента?

Дополнительная информация:

С помощью блоков содержимого мы создаем файл .cshtml (например, _MakeNote.cshtml) для хранения содержимого, которое мы хотим вставить на страницу. Тогда мы используем:

@RenderPage("/Shared/_MakeNote.cshtml") 

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

@RenderPage("/Shared/_MakeNote.cshtml", new { content = "hello from content block" })

Это что-то вроде включаемого файла, но я думаю, что не разделяет область видимости с родительской страницей.

С помощью помощников мы создаем страницу .cshtml в папке App_Code (например, MyHelpers.cshtml) и размещаем на этой странице методы, которые мы хотим вызвать. Метод выглядит примерно так:

@helper MakeNote(string content) {
    <div>@content</div>
}

Помощник вызывается с помощью:

@MyHelpers.MakeNote("Hello from helper")

1 Ответ

1 голос
/ 12 мая 2011

Функциональных различий не так много. Помощники должны перейти в папку App_Code - если только вы не загрузите VWD или Visual C # Express и не скомпилируете двоичный файл - и папка App_Code не очень хорошо подходит для инфраструктуры MVC. Конечно, это актуально, только если в какой-то момент вы захотите перейти на MVC.

Я бы использовал помощника для общих функциональных фрагментов, таких как ваш MakeNote. Я бы использовал «блок контента» (частичный, на самом деле) для повторяющихся специфичных для сайта разделов страницы.

...