架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 14681|回复: 1

[ASP.NET] asp.net mvc利用RenderAction局部视图加载动态数据

[复制链接]
发表于 2018-6-7 17:07:32 | 显示全部楼层 |阅读模式
需求,有两个不同的页面,有一块div里面的数据是公用的!但是div的数据并不是固定的,数据是变化的!其实也就是局部视图。

以前我们用mvc加载局部视图的时候方法如下:

@{Html.RenderPartial("Test",ViewData["aaa"]);}
@Html.Partial("Test")

以前的局部视图,共有部分数据一般都是固定的内容或则有当前控制器的viewdata传入进去,上面两种方法,其实都不会进去控制器这一层,所以效率较高一些,但是不符合我的要求!

我的要求,是局部视图可以进入控制器去加载数据,动态生成数据然后返回!

Partial、Action两者的异同点

相同点:

通常都被用来显示一个功能相对独立的“块”,比如说显示菜单或者导航条。 两者输出的结果都被作为调用的View的一部分显示


不同点:

RenderPartial的数据来自于调用的View,而RenderAction会访问控制器。
RenderAction会发起一个新的Request,而RenderPartial不会。


Html.RenderAction允许你直接调用某一个Action,并把返回的结果直接显示在当前调用的View中,在Control中有一个方法并返回PartialView

QQ截图20180607165558.jpg

首先,在Home控制器新建Test方法,代码如下:

  1. [ChildActionOnly]//防止直接调用(在浏览器中直接访问)
  2.         public ActionResult Test()
  3.         {
  4.             ViewBag.Title = "架构师 http://www.itsvse.com";
  5.             return PartialView();
  6.         }
复制代码


Test.cshtml 代码:

  1. <h2>Test</h2>
  2. <h1>@ViewBag.Title</h1>

复制代码


如何调用局部视图呢?

  1. @{Html.RenderAction("Test", "Home");}
复制代码






上一篇:使用Code First 迁移更新数据库
下一篇:360搜索不收录网站内页的解决办法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-7-4 21:24:08 | 显示全部楼层
@RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderActi...
https://www.itsvse.com/thread-2172-1-1.html
(出处: 架构师_程序员)
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-11-11 03:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表