-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
【asp.net core 系列】2 控制器与路由的恩怨情仇(aspnet和c#什么关系)
0. 前言在上一篇文章中,我们初步介绍了asp.net core,以及如何创建一个mvc项目。从这一篇开始,我将为大家展示asp.net core 的各种内容,并且尝试带领大家来挖掘其中的内在逻辑。当...
-
C# 数据操作系列 - 6 EF Core 配置映射关系
0. 前言在《C# 数据操作系列 - 5. EF Core 入门》篇中,我们简单的通过两个类演示了一下EF增删改查等功能。细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端倪。没看的小伙...
-
C#使用Topshelf创建Windows服务(曹海涛)
一、项目创建创建一个控制台应用程序,项目右键->管理 NuGet 程序包->Topshelft及Topshelf.Log4Net。二、Topshelf配置一般来说,服务都会设置每隔多长时间...
-
C# 数据操作系列 - 5. EF Core 入门(count)
0.前言上一章简单介绍了一下ORM框架,并手写了一个类似ORM的工具类。这一章将介绍一个在C#世界里大名鼎鼎的ORM框架——Entity Framework的Core版。Entity Framewor...
-
C#实现FTP上传资料(乘风破浪的姐姐第三季)
1.通过用FTP进行上传文件,首先要实现建立FTP连接,一般建立FTP连接,需要知道FTP配置有关的信息。一般要在Bean中建立一个ServiceFileInfo.cs文件进行记录,一般需要FTP地址...
-
C# Log4Net学习笔记:记录日志到数据库(cp是什么意思?)
一、数据准备在SQL Server中创建记录日志的数据表LogDetail:在此表中,日志时间、日志级别、线程ID、日志名称都是可以通过配置文件从Log4Net库中取值的,需要重点处理的是日志内容字段...
-
@RenderSection("Scripts", required: false)
这是默认的布局页内容,看着挺多的,但是除了一些html代码,里面还有一些关键的地方需要注意。
1.1 RenderSection
RenderSection 分部渲染,在页面中创建一个标记,表示这个页面块将在子视图(或者是路由的实际渲染视图)中添加内容。
来,我们看一下微软官方给的注释:
In layout pages, renders the content of the section named name.
意思就是在布局页中,渲染名称为name的分部内容。
新创建一个分布页,名称为_Layout1:
@RenderSection("SectionDemo")
这个布局页里什么都没有,只有一个RenderSection。现在我们新建一个控制器:
using Microsoft.AspNetCore.Mvc;
namespace MvcWeb.Controllers
{
public class RenderTestController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
创建对应的视图:
Views / RenderTest/Index.cshtml
先设置布局页为_Layout1:
@{
Layout = "_Layout1";
}
先试试启动应用,访问:
http://localhost:5006/RenderTest/Index
正常情况下,你应该能看到这个页面:
仔细看一下信息,意思是在 RenderTest/Index.cshtml 视图中没有找到 SectionDemo 的分部内容。
那么,如何在视图中设置分部内容呢?
@{
Layout = "_Layout1";
}
@section SectionDemo{
}
使用 @section
后面跟一对大括号,在大括号中间的内容就是这个section(分部)的内容。 重启应用,然后刷新页面,你能看到这样的页面:
如果不做特殊要求的话,定义在布局页中的分部块,视图必须实现。当然,RenderSection还有一个参数,可以用来设置分部不是必须的:
public HtmlString RenderSection(string name, bool required);
1.2 RenderBody
先看下微软给的官方注释:
In a Razor layout page, renders the portion of a content page that is not within a named section.
简单讲,如果在布局页中设置了@RenderBody,那么在使用了这个布局页的视图里所有没被分部块包裹的代码都会渲染到布局页中声明了@RenderBody的地方。
修改_Layout1.cshtml:
@RenderBody()
修改RenderTest/Index.cshtml:
@{
Layout = "_Layout1";
}
RenderBody测试
重启应用,刷新刚刚访问的页面:
可以看出,RenderBody渲染的位置。
2. 静态资源引入
通常情况下,静态资源的引入与HTML引用js和css等资源是一致的,但是对于我们在编写系统时自己创建的脚本和样式表,asp.net core提供了不同的处理方式。那就是服务器端压缩功能。
asp.net core 3.0 的mvc 默认项目是不启动这个功能的,需要我们额外的开启支持。
2.1 开启支持
先引入 BuildBundleMinifier
cd MvcWeb # 切换目录到MvcWeb项目下
dotnet add package BuildBundleMinifier
创建 bundleconfig.json
[
{
"outputFileName": "wwwroot/css/site.min.css",
"inputFiles": [
"wwwroot/css/site.css"
]
},
{
"outputFileName": "wwwroot/js/site.min.js",
"inputFiles": [
"wwwroot/js/site.js"
],
"minify": {
"enabled": true,
"renameLocals": true
},
"sourceMap" alt="【asp.net core 系列】5 布局页和静态资源(aspnet过时了吗)" title="【asp.net core 系列】5 布局页和静态资源(aspnet过时了吗)" width="200" height="150">
【asp.net core 系列】5 布局页和静态资源(aspnet过时了吗)
0. 前言在之前的4篇的内容里,我们较为详细的介绍了路由以及控制器还有视图之间的关系。也就是说,系统如何从用户的HTTP请求解析到控制器里,然后在控制器里处理数据,并返回给视图,在视图中显示出来。这一...
-
phpize安装php扩展(本文章以php7扩展mbstring为案例)
phpize安装php扩展(本文章以php7扩展mbstring为案例)#找到php7安装目录下的phpize位置,/usr/local/php746/bin/phpize,注意如果pc安装了多个版本...
-
关于Linux下内存和Swap(linux可用内存和剩余内存)
目录 1.1 前言 1.2 虚拟内存orSwap 1.3 交换区1|01.1 前言很久之前在做一个网站的时候,发现的一个问题。 之前在搭建完网站需要启动Mysql的时候,死活启动不了。为什...
-
centos7下安装mysql6初始化安装密码(centos6安装mysql5.6)
1.先停止数据库服务器service mysqld stop2.vim /etc/my.cnf3.配置文件添加skip-grant-tables4.重启数据库systemctl restart my...