首页 > Web开发 > 详细

ASP.NET Core-扩展Views的几种方式

时间:2020-02-01 11:01:09      阅读:68      评论:0      收藏:0      [点我收藏+]

在新的ASP.NET Core 中,那些你熟悉的方式有一部分仍然能用,只是Core版本针对视图又添加了一些东西。

 

Layout(布局):

位于 Views\Shared\ 文件夹里 。通常情况下这个文件通常包含HTML的header,body和公用的一些东西。你可以多建几个互相进行组合,来完成整个站点的布局。

有时候子视图中想在布局视图中显示一部分html代码,比如javascript代码或者是css,这个时候就可以使用Sections,Layout中定义 @RenderSection("scripts", required: false) ,子视图中使用 @section scripts{/*........*/} 

 

ViewImports(全局视图):

可以在全局视图中配置你其他视图中使用的一些比较公用的 using 引用,依赖注入等。

 

PartialView(分部视图):

你可以提取html页面中重用的部分,把它放到一个新的Razor视图中,这个视图没有自己的Action,这种视图就叫做分部视图。 分部视图通常也在Views\Shard\文件夹。

分部视图同样也可以是一个数据视图,它可以从父视图中获取数据。例:在视图中引用分部视图 @{ await Html.RenderPartialAsync("Users", Model.Users);} 

 

ViewComponent(视图组件):

MVC Core中新增了视图组件,用于显示页面可重用功能,包含代码、视图。组件必须包含在页面中,不能单独显示,类似以前的用户控件。

有时候你需要做一些分部视图的事情,但是又包含一些业务逻辑在里面。在过去,你可以使用ChildAction渲染结果到一个视图中,但是,在 ASP.NET Core中,有一种新的方式来做这件事情,它就是ViewComponent

与MVC5.0中的Html.RenderAction类似,区别是RenderAction性能差,会走Cotroller生命周期,如滤器会执行一遍。

与MVC5.0中的Html.RenderPartial区别是RenderPartial中业务数据依赖Action,ViewComponent业务数据不依赖Action,有自己的后台代码提供

@Component.Invoke("Top10Articles");

参考文章:

https://www.cnblogs.com/shenba/p/6629212.html
https://www.cnblogs.com/powertoolsteam/p/4212740.html

 

HtmlHelper:

在Core中比HTMLHelpers扩展更好的是新的TagHelpers,但是在扩展你视图的时候,HTMLHelpers仍然有它自己的一些适用的地方。

 

TagHelper:

MVC Core中的新功能,用来代替MVC版本的HtmlHelper,用来辅助生成html标记。

在ASP.NET Core MVC中你应该使用 TagHelpers 来替换 HtmlHelpers,因为它们更加的简洁和容易使用。另一个巨大的好处就是依赖注入,在HtmlHelpers中是使用不了的,因为HtmlHelpers 扩展的都是静态内容。

但TagHelpers是一个公共类,我们可以很容易的在它的构造函数中注入服务。

利用自定义标记赋予元素功能或添加属性的方式,跟Angular有点类似。

参考文章:
https://www.cnblogs.com/shenba/p/6637259.html
https://www.cnblogs.com/shenba/p/6697024.html

 

 

 

未完待续...

ASP.NET Core-扩展Views的几种方式

原文:https://www.cnblogs.com/fanfan-90/p/12247708.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!