亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.Net Core WebApi和ASP.Net WebApi有什么不一樣嘛?

ASP.Net Core WebApi和ASP.Net WebApi有什么不一樣嘛?

富國滬深 2018-07-31 11:10:29
如題:ASP.Net Core WebApi和ASP.Net WebApi有什么不一樣嘛?約詳細越好,謝謝求,大神指點一下,謝謝了
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

應該有挺多地方不一樣的,具體的話呢,我簡單列了一下:

配置項

?以前是寫在Global.asax.cs, 的這個方法里面?WebApiConfig.Register

using?System;using?System.Collections.Generic;using?System.Linq;using?System.Web.Http;namespace?ProductsApp{????public?static?class?WebApiConfig
????{????????public?static?void?Register(HttpConfiguration?config)????????{????????????//?Web?API?configuration?and?services

????????????//?Web?API?routes
????????????config.MapHttpAttributeRoutes();

????????????config.Routes.MapHttpRoute(
????????????????name:?"DefaultApi",
????????????????routeTemplate:?"api/{controller}/{id}",
????????????????defaults:?new?{?id?=?RouteParameter.Optional?}
????????????);
????????}
????}
}

現在的話,寫在 Startup.cs 里面了

using?System;using?System.Collections.Generic;using?System.Linq;using?System.Threading.Tasks;using?Microsoft.AspNetCore.Builder;using?Microsoft.AspNetCore.Hosting;using?Microsoft.Extensions.Configuration;using?Microsoft.Extensions.DependencyInjection;using?Microsoft.Extensions.Logging;namespace?ProductsCore{????public?class?Startup
????{????????public?Startup(IHostingEnvironment?env)????????{????????????var?builder?=?new?ConfigurationBuilder()
????????????????.SetBasePath(env.ContentRootPath)
????????????????.AddJsonFile("appsettings.json",?optional:?true,?reloadOnChange:?true)
????????????????.AddJsonFile($"appsettings.{env.EnvironmentName}.json",?optional:?true)
????????????????.AddEnvironmentVariables();
????????????Configuration?=?builder.Build();
????????}????????public?IConfigurationRoot?Configuration?{?get;?}????????//?This?method?gets?called?by?the?runtime.?Use?this?method?to?add?services?to?the?container.
????????public?void?ConfigureServices(IServiceCollection?services)????????{????????????//?Add?framework?services.
????????????services.AddMvc();
????????}????????//?This?method?gets?called?by?the?runtime.?Use?this?method?to?configure?the?HTTP?request?pipeline.
????????public?void?Configure(IApplicationBuilder?app,?IHostingEnvironment?env,?ILoggerFactory?loggerFactory)????????{
????????????loggerFactory.AddConsole(Configuration.GetSection("Logging"));
????????????loggerFactory.AddDebug();

????????????app.UseMvc();
????????}
????}
}

Controller 中的變化

路由配置的變化(在 Startup 中)

public?void?Configure(IApplicationBuilder?app,?IHostingEnvironment?env,?ILoggerFactory?loggerFactory){
????app.UseMvc(routes?=>
????{
????????routes.MapWebApiRoute("DefaultApi",?"api/{controller}/{id?}");
????});
}

還有,原來的 Controller 是繼承至 APIController 的,在. NET-Core 中并不是,
下面是一個.NET-Core 中Controller 的一個例子

using?System;using?System.Collections.Generic;using?System.Linq;using?System.Threading.Tasks;using?Microsoft.AspNetCore.Mvc;namespace?ProductsCore.Controllers{
????[Route("api/[controller]")]????public?class?ValuesController?:?Controller
????{????????//?GET?api/values
????????[HttpGet]????????public?IEnumerable<string>?Get()????????{????????????return?new?string[]?{?"value1",?"value2"?};
????????}????????//?GET?api/values/5
????????[HttpGet("{id}")]????????public?string?Get(int?id)????????{????????????return?"value";
????????}????????//?POST?api/values
????????[HttpPost]????????public?void?Post([FromBody]string?value)????????{
????????}????????//?PUT?api/values/5
????????[HttpPut("{id}")]????????public?void?Put(int?id,?[FromBody]string?value)????????{
????????}????????//?DELETE?api/values/5
????????[HttpDelete("{id}")]????????public?void?Delete(int?id)????????{
????????}
????}
}


查看完整回答
反對 回復 2018-08-26
  • 1 回答
  • 0 關注
  • 2200 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號