MVC-View与Action传值方式及部分视图区别方法区别

View视图的职责是向用户提供界面,负责根据提供的模型数据生成准备提供给用户的格式界面,并提供用户和系统交互的入口。

 

View和Action之间前后台数据传递的方式有如下几种:

1.弱类型ViewData[""]

2.动态型ViewBag

3.动态类型Model

4.临时存储TempData[""]

5.后台:return View(data);

6.前台:Model 其实就是 WebViewPage.Model

 

部分视图:

1.Partial与RenderPartial方法

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

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

2.RenderPartial与RenderAction方法

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

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

RenderAction会先去调用Controller的Action再呈现视图,所以这里会再发起一个链接。

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

3.RenderAction与Action

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

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

4.RenderPage与RednerPartial方法

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

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

视图引擎

HTTP请求==》路由==>控制器==》Action

视图结果==》视图引擎==》视图==》响应

1)视图引擎发挥作用的地方紧跟在Action方法执行后,目的是获取从控制器传递的数据,并生成经过格式化的输出

2)控制器不渲染视图,它仅仅准备数据并通过ViewResult实例来决定调用哪个视图。

Net MVC请求处理流程

mvc请求流程:

客户端请求--》IIS--》Runtime--》Controller--》Action--》ViewResult(:ActionResult).ExcuteResult()-->RazorView(:IView).RenderView-->Response.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蚂蚁_CrkRes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值