前言

前面提过.net core web实际上是一个服务和若干个中间件组成。

现在我们有一个服务了,那么可想而知我们要完成mvc这种功能,我们需要的就是一个中间件。

好的,接下来,我们只要添加中间件即可。

正文

先来看下我的配置:

WebHost.CreateDefaultBuilder().UseKestrel().UseUrls("http://0.0.0.0:10052;http://0.0.0.0:10051;").ConfigureServices(services => services.AddMvc())
.Configure(app=>app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
})).Build().Run();

看着两个:ConfigureServices和 Configure

第一个什么意思呢?

配置服务?其实就是注入服务,比如我们需要mvc功能,那么我们需要将这个服务添加进入。

第二个什么意思呢?

比如说我们注入了服务,但是是默认配置啊,我希望呢,为一些配置制修改。

app=>app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
}

这一段是不是特别的熟悉呢?

没有看错就是在配置我们的路由。

好的,接下来就开始写我们的代码吧。

我把我的目录截取一下:

来看下这个HomeController:

public class HomeController:Controller
{
public IActionResult Index()
{
return View();
}
}

这下更熟悉了吧。

我们知道视图的位置在:"{ContentRoot}\Views{ControllerName}{ViewName}.cshtml"

所以我根据规则建立了相应的试图:

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>index</title>
</head>
<body>
home index
</body>
</html>

启动起来:

效果就是这样了。

在.net core web中实际上和原来我们的mvc不同。

请再看我的目录:

目录中的内容如下:

public class HelloController
{
[HttpGet("/hello/{name}")]
public string hello(string name)
{
return name;
}
}

那么我启动起来:

说明两个问题,一个问题就是其实中间间扫描的整个目录下的后缀为Controll的class,第二个就是不一定我们非要去继承controller这个class,这个一般用来处理视图的。

重新整理.net core 计1400篇[五] (.net core 添加mvc 中间件 )的更多相关文章

  1. ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; names ...

  2. 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)

    黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...

  3. .NET Core CSharp初级篇 1-2 循环与判断

    .NET Core CSharp初级篇 1-2 本节内容循环与判断 循环 循环是一个在任何语言都是极为重要的语法,它可以用于很多东西,例如迭代数组等等.在C#中,语法层面的循环有:for , fore ...

  4. SpringMVC4+thymeleaf3的一个简单实例(篇五:页面和MySql的数据交互-展示以及存储)

    这一篇将介绍怎样把页面数据保存的MySQL数据库,并将数据库内容展示到页面上.首先做一个基础工作,添加以下jar到lib:1: mysql-connector-Java-5.1.40-bin.jar ...

  5. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  6. 使用Visual Studio Code开发.NET Core看这篇就够了

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9926078.html 在本文中,我将带着大家一步一步的通过图文的形式来演示如何在Visual Studi ...

  7. .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.html 本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新 ...

  8. .NET Core CSharp初级篇 1-1

    .NET Core CSharp初级篇 1-1 本节内容是对于C#基础类型的存储方式以及C#基础类型的理论介绍 基础数据类型介绍 例如以下这句话:"张三是一名程序员,今年15岁重50.3kg ...

  9. NET Core CSharp初级篇 1-3面向对象

    .NET Core CSharp初级篇 1-3 本节内容为面向对象初级教程 类 简介 面向对象是整个C#中最核心最有特色的一个模块了,它很好的诠释了程序与现实世界的联系. 面向对象的三大特征:继承.多 ...

  10. .NET Core CSharp初级篇 1-5 接口、枚举、抽象

    .NET Core CSharp初级篇 1-5 本节内容类的接口.枚举.抽象 简介 问题 如果你需要表示星期或者是某些状态,使用字符串或者数字是否不直观? 你是否发现,无论何种电脑,它的USB口的设计 ...

随机推荐

  1. CPNtools协议建模安全分析---实例变迁标记(五)

    之前的说了库所的标记,现在我们开始加讲变迁标记 1.描述变迁的标记有四种类型,分别是变迁的标记,门卫的标记,世间的标记,代码片段的标记. 咋变迁中限制更严格的输入token,其中Code Segeme ...

  2. 调试分析 Linux 0.00 多任务切换

    当执行完 system_interrupt 函数,执行 153 行 iret 时,记录栈的变化情况. 任务0在刚进入system_interrupt函数时(调用中断int 0x80处理程序),栈空间为 ...

  3. IIS 修改配置 进行性能优化

    1.修改线程池队列长度和启动模式 2.修改线程池最大工作进程数  --设置为0 目的是根据服务器核数 匹配最佳线程数 3.站点高级设置开启预加载

  4. 麦克风阵列技术-beaforming开源算法源码分析

    概述   在音频前端处理算法中,beamforming算法是一个无法绕过的存在,随着AI技术的广泛发展,前端语音技术的需求也在呈现个性化的动态范围.作为一个深耕音频算法多年的老兵,发现站在巨人的肩膀上 ...

  5. 基于Linux的DockerFile添加中文字体

    FROM openjdk:8u332-oraclelinux7 #RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk ...

  6. SQL注入详细讲解概括—宽字节注入

    SQL注入详细讲解概括-宽字节注入 1.宽字节注入原理 2.宽字节注入方法 一.宽字节注入原理 What is 宽字节? 字符大小为一个字节时为窄字节 字符大小为两个及以上的字节为宽字节 英文26个字 ...

  7. SQL注入的原理与分析

    SQL注入的原理与分析 1.SQL注入的本质 2.部分SQL语句 3.SQL注入流程 一.SQL注入的本质 SQL注入的本质,就是把用户输入的数据当作代码执行 Web应用程序对用户输入的数据校验处理不 ...

  8. 【2311. 小于等于 K 的最长二进制子序列】贪心

    class Solution { public static void main(String[] args) { Solution solution = new Solution(); System ...

  9. Deeplink实践原理分析

    目录介绍 01.先看一个场景 02.什么是DeepLink 03.什么是Deferred DeepLink 04.什么是AppLink 05.DeepLink和AppLink核心技术 06.DeepL ...

  10. RSA算法揭秘:加密世界的守护者

    RSA算法起源: RSA算法是由Ron Rivest.Adi Shamir和Leonard Adleman在1977年共同提出的.它是一种非对称加密算法,基于两个大素数的乘积难以分解的数论问题.RSA ...