分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

MVC部分视图的使用(Html.Partial/RenderPartial、Html.Action/RenderAction、RenderPage)

发布时间:2023-09-06 01:23责任编辑:顾先生关键词:MVC

ASP.NET MVC 里页面往往会有许多重用的地方,可以进行封装重用。
使用部分视图有以下优点: 1. 可以简写代码。 2. 页面代码更加清晰、更好维护。
在视图里有多种方法可以 加载部分视图,包括: Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 方法

一、Partial与RenderPartial

   1.Razor 语法: @Html.Partial() 与 @{Html.RenderPartial();}
   2.区别:Partial 可以直接输出内容,它内部是将 html 内容转换为 string 字符(MVCHtmlString)(进行Html编码),然后缓存起来,最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。 这两者都只是抓取分部视图页面内容,不能执行分部视图方法,所以用Partial或RenderPartial方法来显示分部视图不用建立对应的Action,因为不走Action.
 
二、Action与RenderAction
   1.Razor 语法:@Html.Action()与@{Html.RenderAction();}
   2.区别:Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到当前 HttpContext 的效率高。
除此之外,Action与Partial相比,Action访问了控制器中的Action,执行了Action内部的业务。
 
三、RenderPage
   1.Razor语法:@RenderPage()
   2.区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。而 RenderPartial、RenderAction 可以使用原来视图的 Model 和 ViewData。@RenderPage也并没有执行Action。
不传参的情况
<!DOCTYPE html>   <html>  <head>      <meta name="viewport" content="width=device-width" />      <title>Index</title>  </head>  <body>      <div>           <h3>我是首页</h3>          <section>              <h4>分部视图</h4>                    @RenderPage("~/Views/Templates/Partial1.cshtml")          </section>      </div>  </body>  </html>  

传参的情况

<!DOCTYPE html>  <html>  <head>      <meta name="viewport" content="width=device-width" />      <title>Index</title>  </head>  <body>      <div>           <h3>我是首页</h3>          <section>              <h4>分部视图</h4>             @RenderPage("~/Views/Templates/Partial1.cshtml",new { param1="longxi",param2="男"})          </section>      </div>  </body>  </html>  

Partial1.cshtml

@{       var param = string.Format("{0}-{1}", PageData["param1"], PageData["param2"]);  }  @Html.Raw(param)  

MVC部分视图的使用(Html.Partial/RenderPartial、Html.Action/RenderAction、RenderPage)

原文地址:http://www.cnblogs.com/llljpf/p/7802987.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved