Разница между MVC 3 Partial Page (Razor) и MVC 3 Просмотр страницы с макетом (Razor)? - PullRequest
8 голосов
/ 13 октября 2010

В MVC 3 Beta, есть ли разница между шаблонами MVC 3 Partial Page (Razor) и MVC 3 Просмотр страницы с макетом (Razor) ?

Я добавил частичную страницу (_partialList) в свое приложение.Теперь, когда я возвращаю только частичное представление, оно применяет Layout, представленный в _ViewStart.cshtml, действуя очень похоже на страницу стандартного представления с макетом.

    if (Request.IsAjaxRequest())
        return View("_partialList", someModelData);

Как «частичная» страница отличается отстандартный вид страницы с макетом?Будут ли они вести себя по-разному в каком-то конкретном сценарии?

Ответы [ 5 ]

10 голосов
/ 13 октября 2010

Если вы не хотите применять макет, верните PartialView вместо View:

if (Request.IsAjaxRequest())
    return PartialView("_partialList", someModelData);
9 голосов
/ 14 октября 2010

Ответ Дарина решает вашу практическую проблему нежелания применять макет.

Что касается разницы между ними, в Razor они практически одинаковы, потому что и полные страницы, и частичныеиспользовать одно и то же расширение и иметь один и тот же базовый класс.

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

3 голосов
/ 28 февраля 2011

Добавьте следующий код на свою страницу, и механизм просмотра не применит к нему макет.

@{
    Layout = null;
}
2 голосов
/ 02 декабря 2010

Просмотры имеют это @ { View.Title = "Index"; Layout = "~ / Views / Shared / _Layout.cshtml"; }

и частичные просмотры не

0 голосов
/ 13 октября 2010

Я не думаю, что есть какая-либо разница.

...