ASP.NET MVC学习系列(一)-WebAPI初探
由于即將要接手的新項(xiàng)目計(jì)劃用ASP.NET MVC3來(lái)開(kāi)發(fā),所以最近一段時(shí)間一直在看相關(guān)的書或文章。因?yàn)橹霸诖髮W(xué)里也曾學(xué)習(xí)過(guò)MVC2開(kāi)發(fā),也做過(guò)幾個(gè)簡(jiǎn)單的MVC2的小型測(cè)試項(xiàng)目,不過(guò)在后來(lái)工作以后主要還是開(kāi)發(fā)WebForm的項(xiàng)目,所以MVC的東西也就逐漸的淡忘了。
經(jīng)過(guò)這一段時(shí)間的系統(tǒng)學(xué)習(xí),真的覺(jué)得MVC3相比于之前的MVC2還有WebForm來(lái)說(shuō),確實(shí)有一種讓人欲罷不能爽歪歪的感覺(jué)。特別是Razor語(yǔ)法、Linq表達(dá)式等的結(jié)合運(yùn)用。
為了將學(xué)習(xí)過(guò)程中遇到的一些值得留意的問(wèn)題和知識(shí)點(diǎn)進(jìn)行一個(gè)很好地整理,所以打算把對(duì)MVC的學(xué)習(xí)過(guò)程整理成一個(gè)文章系列,同時(shí)也希望能幫助那些初學(xué)ASP.NET MVC的童鞋們。可能文章的風(fēng)格不會(huì)像其他文章那樣講的很深,主要還是通過(guò)實(shí)例來(lái)表達(dá)吧。由于自己也是初學(xué),文章中難免有錯(cuò)誤,也希望各位高手能夠多多指教,大家共同學(xué)習(xí)。
好了,廢話不多說(shuō),進(jìn)入正題。
個(gè)人覺(jué)得在MVC中,路由規(guī)則算是比較重要的一點(diǎn)。記得之前曾看過(guò)dudu站長(zhǎng)的一篇文章?HttpClient + ASP.NET Web API, WCF之外的另一個(gè)選擇?,對(duì)于用慣了“html+ajax+一般處理程序” 來(lái)開(kāi)發(fā)項(xiàng)目的我來(lái)說(shuō),覺(jué)得這應(yīng)該算是另一種更加高端的處理數(shù)據(jù)請(qǐng)求的方式吧,所以,今天我們就從這種“精簡(jiǎn)版的WebAPI” 開(kāi)始說(shuō)起。
?
首先,先創(chuàng)建一個(gè)“ASP.NET 空Web應(yīng)用程序” :
然后添加對(duì)?“System.Web.Http” 和 “System.Web.Http.WebHost” 的引用:
?
再添加對(duì)“System.Net.Http” 的引用:
?
由于需要用到對(duì)Json數(shù)據(jù)的處理,所以還要添加對(duì)?“Newtonsoft.Json” 的引用。
這里需要注意一下:
如果開(kāi)始不添加對(duì)“Newtonsoft.Json”的引用,在項(xiàng)目運(yùn)行時(shí)就會(huì)報(bào)錯(cuò),具體報(bào)錯(cuò)原因稍后再說(shuō)。
?
對(duì)四個(gè)類庫(kù)的引用:
?
然后新建一個(gè)類,用于注冊(cè)默認(rèn)路由映射,這里類名為 WebAPIConfig :
添加Global.asax文件,在?Application_Start 方法中 初始化路由映射:
protected void Application_Start(object sender, EventArgs e){//在應(yīng)用程序啟動(dòng)時(shí)注冊(cè)路由映射 WebAPIConfig.Register(GlobalConfiguration.Configuration);}記得引入命名空間:
using System.Web.Http;注意:
上面我們提到,如果開(kāi)始時(shí)不引用?“Newtonsoft.Json”,那么在運(yùn)行時(shí) 注冊(cè)路由映射這里就會(huì)報(bào)錯(cuò):
?
創(chuàng)建名為Controller的文件夾,然后添加一個(gè)類且類名以 Controller結(jié)尾,這里為UserController 。讓這個(gè)類繼承自 ApiController 基類:
創(chuàng)建名為Model的文件夾用來(lái)存放實(shí)體類,添加Users類:
在 UserController 類中,添加一個(gè) GetUser() 方法,模擬一些數(shù)據(jù):
//引入命名空間 using System.Web.Http; using X_1_FirstWebAPI.Model;namespace X_1_FirstWebAPI.Controller {public class UserController : ApiController{public List<Users> GetUser(){var userList = new List<Users> { new Users{ Id=1,UName="張三",UAge=12,UAddress="海淀區(qū)"},new Users{Id=2,UName="李四",UAge=23,UAddress="昌平區(qū)"},new Users{Id=3,UName="王五",UAge=34,UAddress="朝陽(yáng)區(qū)"}};var temp = (from u in userListselect u).ToList();return temp;}} }?
我們之前添加的路由規(guī)則為?"api/{controller}/{action}/{id}" ,所以,我們?cè)跒g覽器中訪問(wèn)數(shù)據(jù)的url為 http://localhost:****/api/controllerName/actionName ?的形式,在這里即是 api/user/getuser :
OK,到這里,精簡(jiǎn)版的WebAPI項(xiàng)目就完成了,這個(gè)應(yīng)該對(duì)于大部分.NET程序員來(lái)說(shuō)理解起來(lái)是很簡(jiǎn)單的。
那下一篇文章我們就深入地來(lái)聊一聊如何調(diào)用WebAPI請(qǐng)求后臺(tái)數(shù)據(jù)吧!
? 下載代碼
轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC学习系列(一)-WebAPI初探的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Installing python 2.
- 下一篇: 更新数据库触发器