剑轩

.net mvc分部页,.net core分部页

电脑版发表于:2018/11/24 13:35

.net分部页的三种方式


第一种:

 @Html.Partial("_分部页")


 第二种:  

@{

     Html.RenderPartial("分部页"); 

 }


 第三种:        

@{
  Html.RenderAction("action", "控制器"); 
}

  这种方式由于需要请求控制器,可以在控制器里边提供参数,使用分部页的时候就可以不用传递了

   例如通过model与viewdata给分部视图传递一点参数:

public class SharedController : Controller
{
    public ActionResult MyClassPartialPage()
    {
        ExternalLogin externalLogin = new ExternalLogin();
        externalLogin.Provider = "京东3";
        externalLogin.ProviderDisplayName = "自营3";

        ViewData["name"] = "xj";
        return View(externalLogin);
    }
}

分布页可以把复杂的页面细分为一块一块的,方便维护
逻辑也更清晰
自己完成自己那一块的功能,组合成一个复杂一点的页面

tip:.net core中没有这种分部页加载写法了,可以考虑使用视图组件ViewComponent

官方文档:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/view-components?view=aspnetcore-3.1


.net core分部页的加载方式

分部标记帮助程序

<partial name="_PartialName" />

或者接后缀:

<partial name="_PartialName.cshtml" />

视图必须与调用分部视图的标记文件位于同一文件夹中


异步调用:

@await Html.PartialAsync("_PartialName")

或者指定完整路径(需要接后缀)

@await Html.PartialAsync("~/Views/Folder/_PartialName.cshtml")


.net core中的视图组件可以参考:

http://www.tnblog.net/aojiancc/article/details/3340


视图组件类优点:

  完全支持构造函数依赖注入

  不参与控制器生命周期,这意味着不能在视图组件中使用过滤器



关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢