• ASP.NET MVC 部分视图


    转自http://blog.csdn.net/skyandcode/article/details/22594355

    【部分视图】

    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 。原理是一样的,只是 实现技术有一点差别。

  • 相关阅读:
    sql 修改字段小记
    (转)web.config 为某个单独页面设置编码格式
    gb2312编码提交url乱码解决
    Windows 8上强制Visual Studio以管理员身份运行
    new、delete用法(一)
    把varchar转换为int 然后进行排序
    linq 整体修改字段
    游标用法
    分组并赋值
    读取xml
  • 原文地址:https://www.cnblogs.com/ookami/p/3921314.html
Copyright © 2020-2023  润新知