前言

前面提过.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. win10图标异常显示空白,WiFi图标消失等情况解决方案

    出现WiFi图标异常不显示,但是网络却正常,以下为解决方案: Win + R 快捷键调出运行框,输入%USERPROFILE%\AppData\Local,找到IconCache.db文件并删除,之后 ...

  2. 第143篇:手写vue-router,实现router-view

    好家伙,   今天来手写我们的老伙计vue-router,   1.替换router 新开一个项目,并使用我们手写的router   2.大致结构 let Vue; // 保存vue的构造函数 cla ...

  3. vscode 切换项目快捷键 Alt + Shift + P 插件 Project Manager

    vscode 切换项目快捷键 Alt + Shift + P 插件 Project Manager 需求 快速切换同时打开的项目 解决方案 Alt + Shift + P 话说这个插件很早就用了,但是 ...

  4. VS Code Snippet Generator 插件 生成 vscode代码片段

    VS Code Snippet Generator 插件 生成 vscode代码片段

  5. 替换掉Chrome浏览器的新标签页【已做好自己的插件,并提供下载】

    https://jingyan.baidu.com/article/fc07f9891b256312ffe5190a.html 我做好了自己的 Chrome 新插件 https://files.cnb ...

  6. 【预训练语言模型】 使用Transformers库进行BERT预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练. 鉴于算力限制,选用了较小的英文数据集wikitext-2 目的:跑通Mask语言模型的预训练流程 一.准 ...

  7. Review Book for GEE(Graduate Entrance Examination)

    English is made up of phrases and idioms, in the case of both written and spoken usage. When learnin ...

  8. 风控规则引擎(一):Java 动态脚本

    风控规则引擎(一):Java 动态脚本 日常场景 共享单车会根据微信分或者芝麻分来判断是否交押金 汽车租赁公司也会根据微信分或者芝麻分来判断是否交押金 在一些外卖 APP 都会提供根据你的信用等级来发 ...

  9. 解决jenkins Git Publisher自动打tag的问题

    简单配置一下 然后开始构建,然后报错如下 The recommended git tool is: NONE using credential 647ee613-5032-4894-aaeb-fe07 ...

  10. new vs malloc

    https://www.cnblogs.com/qg-whz/p/5140930.html 1.申请内存位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函 ...