[Core] .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 添加的依賴

    "dependencies": {
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", //webhost
        "Microsoft.AspNetCore.Mvc": "1.0.0" //webapi mvc
    }

  

添加的Startup.cs

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

using Microsoft.AspNetCore.Mvc;

public class ValuesController
{
    [HttpGet("/values/{name}")]//name參數注入
    public string Index(string name)
    {
        return "Hello World:" + name;

    }
}

 

修改的Program.cs

        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修改的內容

    "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類

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)一樣

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>@ViewBag.Name</h1>
</body>
</html>

 

修改Program.cs

        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

    "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"//靜態文件
    },

 

注冊管道

        public void Configure(IApplicationBuilder app)
        {
            app.UseStaticFiles();//需要在mvc前 否則將優先被mvc路由匹配執行
            app.UseMvc();
        }

 

添加靜態文件

靜態文件默認是以wwwroot文件夾為根目錄

 

 

注意:

  • 添加依賴后,需要Restore后才能使用該庫
  • 本節由於篇幅問題,去除了配置文件的大量說明
  • 本文地址:http://www.cnblogs.com/neverc/p/5801210.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM