近来在学习MVC 4.0,设置布局全局网页的页脚,使用了Razor语法

            @{Html.RenderPartial("Footer", Model.FooterData);}

但是并不理解Html帮助器方法@Html.RenderPartial。

先来介绍一下@Html.RenderPartial用法。

Html.RenderPartial在Asp.net Mvc中是用来调用PartialView的。PartialView基本上就是Asp.net Webform中的UserControl。调用也很简单,只要在View中把PartialView的名字作为参数传递就可以。比如:

@ Html.RenderPartial("YourPartialView", Data);

Data是一个可选的参数。如果有,那么Data会被赋给PartialView中的Model。如果没有,那么调用 RenderPartial的View中的Mode和ViewData会被传递给PartialView。也就是说,PartialView的数据来自于 调用RenderPartial 方法的View

说通俗一点:RenderPatial的数据来自于调用的View,可以使用viewdata,model等数据,直接传递到PartialView。

而HTML 帮助器也提供了跟Html.RenderPartial异曲同工的方法,@Html.RenderAction

而Html.RenderAction又是怎样的方法,跟Html.RenderPartial又有什么区别?

Html.RenderAction允许你直接调用某一个Action,并把返回的结果直接显示在当前调用的View中。比如:

@ Html.RenderAction("Show", "Tag");

此时,TagController中的Show方法会被调用。由于这时调用的是一个Action方法,因此可以在此方法中完成你想要完成的各种操作,比如从数据库,文件等获取数据,写数据等并返回结果。

说通俗一点:RenderAction会发起一个新的Request,而RenderPatial不会,会指定某个controller执行想要的action方法。

@Html.RenderPartial和@Html.RenderAction的区别?

1.Html.RenderPartial适合用在重覆使用的UserControl,并且只需要透过Model来呈现内容,或是对于广告的UserControl也适合使用。

2.Html.RenderAction则会先去呼叫Controller的Action方法,如果此UserControl是需要透过资料库取得资料来呈现(透过Action来读取资料库),此时会比较适合使用此方式。

3.对于简单的没有任何逻辑的用户控件,推荐使用Html.RenderPartial;对于需要设置一些Model的用户控件,推荐使用Html.RenderAction。当然,有Model数据也是可以使用Html.RenderPartial方法的,可以看方法的重载。

转载于:https://www.cnblogs.com/nx520zj/p/5663253.html

MVC 4.0 Razor模板引擎 @Html.RenderPartial 与 @Html.RenderAction 区别相关推荐

  1. razor生成html,MVC Razor模板引擎输出HTML或者生产HTML文件

    以前做CMS的时候都会根据模板来生成输出HTML或者生成HTML文件. 常用的引擎有VTemplate.NVelocity等等,这个我就布做介绍了. 这里我想说的是.当mvc出现Razor模板引擎的时 ...

  2. MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction...

    一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...

  3. MVC Razor模板引擎

    一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...

  4. .NET Core中使用Razor模板引擎

    一.简介 在MVC以外的场景中,我们往往需要完成一些模板引擎生成代码或页面的工作:在以前我们一般常用的有Razor.NVeocity.VTemplate.虽然所有的模板系统都具有一些共同特征,但 Ra ...

  5. php要输出为空值怎么写,thinkphp3.0基础模板引擎变量为空时输出默认值

    在thinkphp的模板引擎中,如果输出的变量是空的,但我们的设计需求又不想让这里空出一大块,需要给这个变量指定一个默认值,也就是说,如果 这个变量为空,就显示我们指定的默认值.那么这个可不可以在th ...

  6. JEE6 CDI 扩展实现 MVC (四) 实现多模板引擎支持,并提供扩展接口

    为什么80%的码农都做不了架构师?>>>    在上一篇中,我们添加了对 Freemarker的支持,这里我们再添加多 Velocity 的支持,同时留出扩展接口.方便用户自己添加模 ...

  7. MVC的概念及MVC 3.0开发环境

    摘要 MVC即: Model(模型), View(视图), Controller(控制器) Model:模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库 ...

  8. Spring Boot + Drools+模板引擎,优惠券的动态添加以及购物车结算

    目录 二.项目文件结构以及数据库表结构 三.主要项目文件说明 1.pom文件 2.配置文件 3.实体类 4.添加优惠券业务实现 5.购物车结算业务实现 四.实现效果 1.添加优惠券 2.购物车结算 五 ...

  9. 深入浅出之Smarty模板引擎工作机制(一)

    深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解. ...

最新文章

  1. R语言使用caret包对GBM模型自定义参数调优:自定义优化参数网格、可视化核心参数与评估指标关系、Accuracy与树的深度、个数的关系、Kappa与树的深度、个数的关系
  2. python第一周小测验_荐测验1: Python基本语法元素 (第1周)
  3. 2018最新手机号正则
  4. oracle报V27的错误解决办法,oracle11g ora-27154 past/wait 错误解决方法
  5. 光影变幻:自动化所基于最优传输理论的影视换脸技术
  6. 最全银行IT核心系统:研究框架(165页)
  7. SVN篇:Shell脚本实现SVN启动,停止,重启
  8. jstack分析线程状态
  9. COM 组件实现事件、通知
  10. jquery实现返回顶部的效果
  11. 计算机通过华为手机上网,华为手机usb共享电脑的网络怎么办
  12. 什么是HD , HDTV , BD(Blu-Ray) , HDDVD
  13. 奇点云数据中台技术汇 | 数据治理——企业数字化转型的基石
  14. 我猜这将是程序员副业接单赚外快的最好的平台!
  15. “AI+机器人”持续为多领域增“智”添“质”,开启效益增长飞轮
  16. jquery动态加载图片数据
  17. 2.Bulldog渗透实战
  18. 评论中发emoji表情 iOS
  19. 英语论文格式修改(两栏)
  20. [软件人生]抢钱的电影与现在的软件开发

热门文章

  1. 关于C语言中 字符串常量的问题
  2. 在Red Hat Linux5下构建LAMP网站服务平台之MySQL、PHP的安装与配置
  3. 在项目中使用Google Closure Compiler
  4. 36晋级12第五场:冯志刚决胜入围(节目视频)
  5. Ansible04-任务控制
  6. azure多功能成像好用吗_如何使用Azure功能处理高吞吐量消息
  7. 低版本jdbc连接高版本oracle,转:oracle11g的JDBC连接 URL和之前的版本有一定的区别...
  8. Servlert接口的doGet()、doPst()方法
  9. java怎么返回xml_java – 如何从Web服务返回XML
  10. 学Java技术,这些问题要避免