posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

加载部分视图的方法:Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage()

partial 与 RenderPartial 方法

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

区别:Partial 可以直接输出内容,它内部是将html内容转换为string字符(MVCHtmlString),然后缓存起来,最后在一次性输出到页面。

显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。只是输出页面内容,不能执行方法(Action)。

RenderAction 与 Action 

Razor 语法:

@Html.Action();与@{Html.RenderAction();}

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

除此之外,Action与Partial相比,Action访问了控制器中的Action,执行了Action内部的业务。

RenderPage 与 RenderPartial

Razor 语法:

@{Html.RenderPartial();}  与 @RenderPage()

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

@RenderPage也没有执行Action。

js调用视图:

$("#result").load("/home/message",function(){

//加载完之后隐藏进度条

});

部分视图的Action可以写在自己创建的BaseController里,然后每个Controller都继承这个类,不用每次都重新写。

public PartialViewResult SiteHeader(int CurrentPageID)
        {
            ViewBag.CurrentPageID = CurrentPageID;
            return PartialView("~/Views/Shared/SiteHeader.cshtml");
        }

调用和传参:@{Html.RenderAction("SiteHeader", "Home", new { CurrentPageID = 1 });}

posted on   邢帅杰  阅读(391)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示