Чем отличаются RenderPartial и Partial, RenderAction и Action?
На этот вопрос попытаюсь ответить так: если мы используем приставку Render, то результаты выполнения сразу встраиваются в выходной поток. С приставкой Render - это void метод, поэтому в коде мы должны закрывать строку точкой с запятой и не можем использовать @ перед вызовом. Правильный вызов RenderPartial(RenderAction аналогично):
Без приставки Render Html.Partial (как и Html.Action) - возвращает html разметку. Разметка хранится в буфере, а потом также встраивается в выходной поток. Поэтому первый способ немного эффективнее.
Правильный синтаксис (без точки с запятой):
На этот вопрос попытаюсь ответить так: если мы используем приставку Render, то результаты выполнения сразу встраиваются в выходной поток. С приставкой Render - это void метод, поэтому в коде мы должны закрывать строку точкой с запятой и не можем использовать @ перед вызовом. Правильный вызов RenderPartial(RenderAction аналогично):
@{
Html.RenderPartial("View");
}
Без приставки Render Html.Partial (как и Html.Action) - возвращает html разметку. Разметка хранится в буфере, а потом также встраивается в выходной поток. Поэтому первый способ немного эффективнее.
Правильный синтаксис (без точки с запятой):
@Html.Partial("View")
Какой тогда в смысл было создавать два похожих метода, но один из них менее эфективный чем второй?
ОтветитьУдалитьРезультат выполнения Partial можно хранить в переменной или возвращать из функции. Если использовать Render, то сделать этого уже не получится.
ОтветитьУдалить