In MVC 3 Beta, is there a difference between the templates MVC 3 Partial Page (Razor) and MVC 3 View Page with Layout (Razor) ?
I added a partial page (_partialList) to my application. Now when I return only the partial view, it applies the Layout present in _ViewStart.cshtml - acting very much like a stardard view page with layout.
if (Request.IsAjaxRequest())
return View("_partialList", someModelData);
How does a "partial" page distinguish itself from a standard view page with layout ? Will the two behave differently in any particular scenario?
Darin's response solves your practical issue of not wanting the layout to be applied.
Regarding the difference between the two, in Razor they are practically the same because both full pages and partials use the same extension and have the same base class.
The reason why there is different UI is because in the Web Forms view engine the two are implemented with different extensions and different base classes, which is why to seperate templates are necessary.
If you don't want to apply the layout return a PartialView
instead of View
:
if (Request.IsAjaxRequest())
return PartialView("_partialList", someModelData);
Add the following code to your page, and the view engine will not apply the layout to it.
@{
Layout = null;
}
Views have this
@{
View.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
and partial views don't
I don't think there is any difference.