前言
好吧,也沒什么好說的,就是個技術的總結,直接生成MVC的項目,感覺好重,雖然各種東西很全 ...也許我是處女座? - -,
OWIN呃,這里我就不解釋了,自己也是一知半解,可以參考
我們開始吧...
首先看看結果..
整個WEB項目...很清爽.. - - 我自己是這么覺得的..
正文開始
首先我們創建一個空的Web項目:
創建完成后,里面是什么都沒有的,然后我們添加一個OWIN啟動類如下:
在我們的Start UP中編寫代碼如下(解釋我就寫在注釋里了..):
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; using System.Web.Http; [assembly: OwinStartup(typeof(OWIN_Test.MyStartup))] namespace OWIN_Test { public class MyStartup { public void Configuration(IAppBuilder app) { //創建一個HTTP的實例配置 HttpConfiguration config = new HttpConfiguration(); //映射路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); //將配置注入OWIN管道中 app.UseWebApi(config); } } }
這一步有個重點,那就是app.UseWebApi(config)這個方法會提示找不到,如下圖:
那是因為我們缺少了這個包 Microsoft ASP.NET Web API 2 OWIN Self-Host
我們打開NuGet控制台..輸入命令:Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
等待下載和安裝完畢即可..效果如下:
下面我們編寫一個WebAPI的控制器,代碼如下(代碼很簡單,我就不解釋了):
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace OWIN_Test.Controller { public class ValuesController : ApiController { [HttpGet] public string DoGetTime(string name) { return name + DateTime.Now.ToString("yyyy-MM-dd"); } } }
編寫HTML,這里我們采用AJAX訪問.代碼如下:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="JS/jquery/jquery-1.9.1.min.js"></script> <script> $(function () { $("#testbtn").click(function () { $.get("api/Values/DoGetTime", { name: $("#name").val() }, function (data) { alert(data); }) }) }) </script> </head> <body> <input type="text" id="name"/> <input id="testbtn" type="button" value="調用WebAPI"/> </body> </html>
效果如下:
我們得到了我們想要的數據..
寫在最后
在Web項目中直接創建webapi的項目其實可以很快的達到效果,..個人不是很喜歡自帶的Webapi模版感覺很蛋疼加了很多用不着的東西,采用OWIN當宿主可以將項目架設在服務,控制台等,當然~你用MVC6甚至..可以跨平台部署~...很方便...文章結束.
不足之處請各位大神多多指點.