ASP.NET MVC4 部分视图
ASP.NET MVC4 部分視圖
2014-10-24 16:48 by 易code, 2663 閱讀, 1 評(píng)論, 收藏, 編輯
【部分視圖】
ASP.NET MVC 里的部分視圖,相當(dāng)于 Web Form 里的 User Control。我們的頁(yè)面往往會(huì)有許多重用的地方,可以進(jìn)行封裝重用。使用 部分視圖 :? 1. 可以簡(jiǎn)寫代碼。2. 頁(yè)面代碼更加清晰、更好維護(hù)。
【如何使用】
在視圖里有多種方法可以 加載部分視圖,包括:
Partial()? Action()? RenderPartial()? RenderAction()? RenderPage() 方法。
以下是這些方法的差別:
Partial 與 RenderPartial 方法
1. Razor 語法:@Html.Partial() 與 @{Html.RenderPartial();}
2. 區(qū)別:Partial 可以直接輸出內(nèi)容,它內(nèi)部是 將 html 內(nèi)容轉(zhuǎn)換為 string 字符(MVCHtmlString),然后緩存起來,????? 最后在一次性輸出到頁(yè)面。顯然,這個(gè)轉(zhuǎn)換的過程,會(huì)降低效率,所以通常使用 RenderPartial 代替。
RenderPartial 與 RenderAction 方法
1. Razor 語法:@{Html.RenderPartial();}? 與 @{Html.RenderAction();}
2. 區(qū)別:RenderPartial 不需要?jiǎng)?chuàng)建 Controller 的 Action ,而 RenderAction 需要在 Controller 創(chuàng)建要加載的 Action。
?? RenderAction 會(huì)先去調(diào)用 Contorller 的 Action ,最后再 呈現(xiàn)視圖,所以這里 頁(yè)面會(huì)在 發(fā)起一個(gè)鏈接。
? 如果這個(gè)部分視圖只是一些簡(jiǎn)單 的 html 代碼,請(qǐng)使用 RenderPartial。 但如果這個(gè)部分視圖 除了有 html 代碼外,???? 還需要 通過 讀取數(shù)據(jù)庫(kù)里的數(shù)據(jù) 來渲染,就必須使用 RenderAction 了,因?yàn)?它可以在 Action 里調(diào)用 Model里的???? 方法讀取數(shù)據(jù)庫(kù),渲染視圖后在呈現(xiàn),而 RenderPartial 沒有 Action,所以無法做到。
RenderAction 與 Action
1. Razor 語法:@{Html.RenderAction();}? 與 @Html.Action();
2. 區(qū)別:Action 也是直接輸出,和 Partial 一樣,也存在一個(gè)轉(zhuǎn)換的過程。不如 RenderAction 直接輸出到 當(dāng)前??????????? HttpContext 的效率高。
RenderPage 與 RenderPartial 方法
1. Razor 語法:@{Html.RenderPartial();}? 與 @RenderPage()
2. 區(qū)別:也可以使用 RenderPage 來呈現(xiàn)部分,但它不能使用 原來視圖的 Model 和 ViewData ,只能通過參數(shù)來傳??????? 遞。而 RenderPartial 可以使用原來視圖的 Model 和 ViewData。
【總結(jié)】
ASP.NET MVC 引入的 部分視圖(Partial View)和 布局 (Layout)其實(shí)都不是新的概念,相當(dāng)于是 Web Form 里的User Control 和 Master Page 。原理是一樣的,只是 實(shí)現(xiàn)技術(shù)有一點(diǎn)差別。
轉(zhuǎn)載于:https://www.cnblogs.com/zxtceq/p/5166410.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC4 部分视图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虎记:强大的nth-child(n)伪类
- 下一篇: 设计模式 笔记 命令模式 Command