• ASP.NET MVC 部分视图(转)


    【部分视图】

    ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方,可以进行封装重用。使用 部分视图 :  1. 可以简写代码。2. 页面代码更加清晰、更好维护。

    【如何使用】

    在视图里有多种方法可以 加载部分视图,包括:

    Partial()  Action()  RenderPartial()  RenderAction()  RenderPage() 方法。

    以下是这些方法的差别:

    Partial 与 RenderPartial 方法

    1. Razor 语法:@Html.Partial() 与 @{Html.RenderPartial();}

    2. 区别:Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来,      最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。

    RenderPartial 与 RenderAction 方法

    1. Razor 语法:@{Html.RenderPartial();}  与 @{Html.RenderAction();}

    2. 区别:RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller 创建要加载的 Action。

       RenderAction 会先去调用 Contorller 的 Action ,最后再 呈现视图,所以这里 页面会在 发起一个链接。

      如果这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但如果这个部分视图 除了有 html 代码外,     还需要 通过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,因为 它可以在 Action 里调用 Model里的     方法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,所以无法做到。


    RenderAction 与 Action

    1. Razor 语法:@{Html.RenderAction();}  与 @Html.Action();

    2. 区别:Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到 当前            HttpContext 的效率高。


    RenderPage 与 RenderPartial 方法

    1. Razor 语法:@{Html.RenderPartial();}  与 @RenderPage()

    2. 区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传        递。而 RenderPartial 可以使用原来视图的 Model 和 ViewData。

    【总结】

    ASP.NET MVC 引入的 部分视图(Partial View)和 布局 (Layout)其实都不是新的概念,相当于是 Web Form 里的User Control 和 Master Page 。原理是一样的,只是 实现技术有一点差别。

  • 相关阅读:
    Poj 1742 Coins(多重背包)
    Poj 2350 Above Average(精度控制)
    求二进制数中1的个数
    Poj 1659 Distance on Chessboard(国际象棋的走子规则)
    Poj 2411 Mondriaan's Dream(压缩矩阵DP)
    Poj 2136 Vertical Histogram(打印垂直直方图)
    Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
    poj 2390 Bank Interest(计算本利和)
    Poj 2533 Longest Ordered Subsequence(LIS)
    Poj 1887 Testing the CATCHER(LIS)
  • 原文地址:https://www.cnblogs.com/tianma3798/p/4078162.html
Copyright © 2020-2023  润新知