NET Core & VS Code 之路(2) Web API
NET Core & VS Code 之路(2) Web API
开发Core项目的条件
看到VS包的体积,以及不想往下走了.
幸亏,ms出了VS Code,可开发.NET Core项目.实际上记事本也能写Core代码,但是开发是需要调试的.
所以本系列将持续用VS Code开发.以代码为主,关键点会加以注释
由于公司事比较多,一直没来得及更新
目录
Web API
- dotnet new 添加Core项目
- project.json添加依赖
"Microsoft.AspNetCore.Server.Kestrel"
"Microsoft.AspNetCore.Mvc"
- 添加Startup.cs
- 添加ValuesController.cs
- 修改Program.cs
project.json 添加的依赖
1
2
3
4
|
"dependencies" : { "Microsoft.AspNetCore.Server.Kestrel" : "1.0.0" , //webhost "Microsoft.AspNetCore.Mvc" : "1.0.0" //webapi mvc } |
添加的Startup.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; public class Startup { public void Configure(IApplicationBuilder app) { app.UseMvc(); //使用MVC管道 } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); //MVC加入到DI容器中 } } |
添加的ValuesController.cs
1
2
3
4
5
6
7
8
9
10
11
|
using Microsoft.AspNetCore.Mvc; public class ValuesController { [HttpGet( "/values/{name}" )] //name参数注入 public string Index( string name) { return "Hello World:" + name; } } |
修改的Program.cs
1
2
3
4
5
6
7
8
9
|
public static void Main( string [] args) { new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .UseUrls( "http://localhost:8899" , "http://localhost:9988/" )//同时监听2个端口 .Build() .Run(); } |
MVC
在.NET Core中,MVC和Web API实际上走的同一个管道
本例子会在上面的Web API基础上修改
- 添加和修改project.json
- Microsoft.AspNetCore.Razor.Tools
- 添加HomeController
- 添加Index.cshtml
- 修改Program.cs
MVC中因为有razor动态编译,所以不仅仅添加1个依赖即可
project.json修改的内容
1
2
3
4
5
6
7
8
9
10
11
12
13
|
"buildOptions" : { "debugType" : "portable" , "emitEntryPoint" : true , "preserveCompilationContext" : true //动态编译 }, "dependencies" : { "Microsoft.AspNetCore.Server.Kestrel" : "1.0.0" , //webhost "Microsoft.AspNetCore.Mvc" : "1.0.0" , //webapi mvc "Microsoft.AspNetCore.Razor.Tools" : { //mvc razor "version" : "1.0.0-preview2-final" , "type" : "build" } }, |
添加的HomeController.cs
注意:需要继承Controller类
1
2
3
4
5
6
7
8
9
10
11
|
using Microsoft.AspNetCore.Mvc; public class HomeController : Controller { [HttpGet( "/{name}" )] public IActionResult Index( string name) { ViewBag.Name = "Hello " + name; return View(); } } |
添加Index.cshtml
目录结构和之前方式(ASP.NET MVC)一样
1
2
3
4
5
6
7
8
9
10
|
<!DOCTYPE html> <html lang= "zh" > <head> <meta charset= "UTF-8" > <title>Title</title> </head> <body> <h1>@ViewBag.Name</h1> </body> </html> |
修改Program.cs
1
2
3
4
5
6
7
8
9
10
|
public static void Main( string [] args) { new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .UseContentRoot(Directory.GetCurrentDirectory()) //mvc views需要 .UseUrls( "http://localhost:8899" , "http://localhost:9988/" )//同时监听2个端口 .Build() .Run(); } |
静态文件
- 添加依赖:project.json
- Microsoft.AspNetCore.StaticFiles
- 注册管道:Startup.cs
- 添加静态文件:wwwroot
project.json
1
2
3
4
5
6
7
8
9
|
"dependencies" : { //nuget包 "Microsoft.AspNetCore.Mvc" : "1.0.0" , //webapi mvc "Microsoft.AspNetCore.Server.Kestrel" : "1.0.0" , //webhost "Microsoft.AspNetCore.Razor.Tools" : { //mvc razor "version" : "1.0.0-preview2-final" , "type" : "build" }, "Microsoft.AspNetCore.StaticFiles" : "1.0.0" //静态文件 }, |
注册管道
1
2
3
4
5
|
public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); //需要在mvc前 否则将优先被mvc路由匹配执行 app.UseMvc(); } |
添加静态文件
静态文件默认是以wwwroot文件夹为根目录
注意:
- 添加依赖后,需要Restore后才能使用该库
- 本节由于篇幅问题,去除了配置文件的大量说明
- 本文地址:http://www.cnblogs.com/neverc/p/5801210.html
NET Core & VS Code 之路(2) Web API的更多相关文章
- [Core] .NET Core & VS Code 之路(2) Web API
开发Core项目的条件 Visual Studio 2015 Update 3 .NET Core 1.0.0 - VS 2015 Tooling Preview 2 看到VS包的体积,以及不想往下走 ...
- [ASP.NET MVC 小牛之路]18 - Web API
Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的 ...
- .Net Core+Angular6 学习 第一部分(创建web api)
. 创建.net core web api 1.1 选择一个empty 模式,里面只有简单的2个class 1.2 配置web api 的路由. 1.2.1 打开Startup.cs,首先引用conf ...
- 【转】asp.net Core 系列【二】—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API
在本教程中,将生成用于管理“待办事项”列表的 Web API. 不会生成 UI. 概述 以下是将创建的 API: API 描述 请求正文 响应正文 GET /api/todo 获取所有待办事项 无 待 ...
- [Core] .NET Core & VS Code 之路(1) Hello World
目录 相关链接 dotnet命令 VS Code Hello World Web Hello World 总结 其实本篇上个月已经写好, 只是 但是,不忘初心方得始终 相关链接 Learn .NET ...
- Asp.Net Core 3.0 学习3、Web Api 文件上传 Ajax请求以及跨域问题
1.创建Api项目 我用的是VS2019 Core3.1 .打开Vs2019 创建Asp.Net Core Web应用程序命名CoreWebApi 创建选择API 在Controller文件夹下面添加 ...
- Asp.Net Core 3.1 学习3、Web Api 中基于JWT的token验证及Swagger使用
1.初始JWT 1.1.JWT原理 JWT(JSON Web Token)是目前最流行的跨域身份验证解决方案,他的优势就在于服务器不用存token便于分布式开发,给APP提供数据用于前后端分离的项目. ...
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)
HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expo ...
- [转]【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)
本文转自:https://www.cnblogs.com/inday/p/6288707.html HTTP is not just for serving up web pages. It’s al ...
随机推荐
- python摘抄
核心模块: random 当你的程序需要随机数功能时,random 模块就能派上用场.该模块包含多个伪随机数发生器,它们均以当前的时间戳为随机数种子.这样只要载入这个模块就能随时开始工作.下面列出了该 ...
- QR分解
从矩阵分解的角度来看,LU和Cholesky分解目标在于将矩阵转化为三角矩阵的乘积,所以在LAPACK种对应的名称是trf(Triangular Factorization).QR分解的目的在 ...
- C++中的位域(bit-filed):一种节省空间的成员
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/16/90211.html 有一种被称为位域(bit-field) 的特殊的类数据成员,它可以被 ...
- RMQ——窗口题解
题目:窗口 描述: [问题描述] 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表: Window position Min val ...
- oracle连接进程数设置
SQL> select count(*) from v$session #连接数SQL> Select count(*) from v$session where status='ACTI ...
- Maven搭建环境(Linux& Windows)
Linux下安装Maven 1.前提条件: 1)下载并安装好JDK .在终端输入命令“java -version”,如果出现类似如下信息说明JDK安装成功. $ java -version java ...
- Java高级特性之反射学习总结
老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值 一. 什么是反射? 二.反射能做什么? 一. 什么是反射? 用在Java身上指的是我们可以于运行时加载.探知.使用 ...
- B - The Accomodation of Students - hdu 2444(最大匹配)
题意:现在有一些学生给你一下朋友关系(不遵守朋友的朋友也是朋友),先确认能不能把这些人分成两组(组内的人要相互不认识),不能分的话输出No(小写的‘o’ - -,写成了大写的WA一次),能分的话,在求 ...
- android:ellipsize的使用
EidtText和textview中内容过长的话自动换行,使用android:ellipsize与android:singleine可以解决,使只有一行. EditText不支持marquee 用法如 ...
- db2 存储过程迁移方法
大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题: 1. 非常多存储过程有先后关系(存储过程调用存储过程),假设存储过程数量少,还能手动操作.假设量大,那真是要疯了. 2. 存储过程过大 ...