ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NET6完整项目实战系列第2篇

2022-03-09 01:00:07  阅读:223  来源: 互联网

标签:实战 文件 系列 视图 如下 cshtml NET6 css 页面


项目生成后的目录如下图,我们逐个分析一下这些文件的用途先。

1. wwwroot 目录用于存放 css文件、JS文件、图片文件、第三方前端框架/库文件等,这个目录的特别之处在于页面中如果要引用其中的文件,

比如 site.css 时 , 其路径不需要加 wwwroot 这个文件夹路径。打开 _Layout.cshtml 这个文件, 如下图:

这里的路径是 "~/css/site.css" ,不是 "~/wwwroot/css/site.css" ,即使 wwwroot 这个文件夹真实存在,如下图:

2. asp-append-version=true 这个属性是 razor page 中定义的一个服务器属性,如果设置为 true 后,访问网站后点鼠标右键“查看页面源代码”,

可以看到这行代码将生成一个带查询字符串的url ,如下图:

 

其作用是防止浏览器缓存 site.css 这个文件,每次刷新页面时,浏览器都会到服务器上重新抓取 site.css ,利用这个特性,我们可以在开发阶段设置 asp-append-version=true,

防止更改样式后因为浏览器缓存而不能马上看到页面要呈现的效果。发布到生产环境时可以设为 false , 让浏览器缓存起来,节约网络带宽,加快网站的访问速度。

 

3 . wwwroot下的 lib 这个目录用于放第三方的库文件,比如jquery等,bootstrap 是一个前端框架,功能比较强大,比如它能让页面数据显示时自动适应PC、手机等不同的设备的宽度。

4. shared目录下存放一些通用页面,比如布局页或者视图页,布局页用于定义整个网站的框架结构,视图页用于将一些重复度高的功能抽离出来,方便其他页面引用。

像登录这样的功能就比较适合单独拿出来做成一个视图页,需要用到的页面引用它就可以了,后期维护起来很方便。

布局页或视图页一般以“_” 开头,在Razor中,以下划线“_”开头的页面是不能在浏览器中直接访问的,只能被其他页面引用。

5. appsettings.json是网站的配置文件,是以JSON格式存储的。

6.Program.cs是网站的启动文件,一般会配置类和接口的依赖注入关系以及启用特定的中间件。

7.其他补充:

_ViewStart.cshtml 和 _ViewImports.cshtml 是所有页面都会继承的两个视图页,但作用不同,_ViewStart.cshtml 中只有一行代码,如下图:

它用于为所有页面自动套用 _Layout.cshtml 这个布局页,如果删除这个文件后还希望 index.cshtml 套用 _Layout.cshtml 布局页的话,

index.cshtml 需要加上如下的代码:

简而言之 , 如果不想在每个页面中都写 Layout = "_Layout"; 这样一行代码,就保留 _ViewStart.cshtml 文件,否则可以删除。

 

_ViewImports.cshtml 中的代码如下:

很明显,这个视图页的功能就是把每个页面都需要引用的名称空间等资源包括进来,防止每个页面中都去写这些重复的代码。

 

_ValidationScriptsPartial.cshtml 中的代码如下:

这里仅引入了Jquery的2个插件,如果需要用到Jquery的这2个插件,需要在相应的页面中加入如下的代码:

<partial name="_ValidationScriptsPartial" /> , partial是服务端的标签,用于引入视图页,name后就是视图页的名称,不需要.cshtml 这个扩展名。

在NET6 Razor Pages 中,所有对页面、视图页、布局页的引用都不需要加上文件扩展名,直接使用名称就可以了。

 

标签:实战,文件,系列,视图,如下,cshtml,NET6,css,页面
来源: https://www.cnblogs.com/pfm33/p/15983321.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有