MVC加载部分视图Partial

加载部分视图的方法: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 });}

转载于:https://www.cnblogs.com/xsj1989/p/6924197.html

MVC中,可以通过在视图加载分部视图时对分部控制器传参。可以使用以下方法来实现: 1. 在主视图中使用`Html.Action`或`Html.RenderAction`方法加载分部视图,并传递参数给分部控制器。例如: ``` @Html.Action("PartialIndex", "PartialViewDeom", new { param1 = "value1", param2 = "value2" }) ``` 这样就可以将参数`param1`和`param2`传递给`PartialViewDeomController`的`PartialIndex`方法。 2. 在分部控制器的对应方法中,接收参数并进行处理。例如: ``` public ActionResult PartialIndex(string param1, string param2) { // 处理参数逻辑 return PartialView(); } ``` 在`PartialIndex`方法中,可以通过参数`param1`和`param2`来获取传递过来的值,并进行相应的处理。 通过以上方法,可以在一个视图加载分部视图时对分部控制器传递参数。 #### 引用[.reference_title] - *1* *3* [MVCPartial View 用法](https://blog.csdn.net/WuLex/article/details/78946182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MVC |分部视图 PartialView()](https://blog.csdn.net/Fanbin168/article/details/50094301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值