Difference between MVC 3 Partial Page (Razor) and

2019-02-13 01:47发布

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?

5条回答
时光不老,我们不散
2楼-- · 2019-02-13 02:09

Views have this @{ View.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; }

and partial views don't

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-02-13 02:16

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.

查看更多
别忘想泡老子
4楼-- · 2019-02-13 02:18

I don't think there is any difference.

查看更多
Melony?
5楼-- · 2019-02-13 02:26

If you don't want to apply the layout return a PartialView instead of View:

if (Request.IsAjaxRequest())
    return PartialView("_partialList", someModelData);
查看更多
萌系小妹纸
6楼-- · 2019-02-13 02:29

Add the following code to your page, and the view engine will not apply the layout to it.

@{
    Layout = null;
}
查看更多
登录 后发表回答