如題: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)????????{ ????????} ????} }
- 1 回答
- 0 關注
- 2200 瀏覽
添加回答
舉報
0/150
提交
取消