2015-11-08 71 views
0

我試圖實現搜索功能。我編寫了一個接受查詢的操作方法,然後返回一個項目列表。首先,我不知道如何從我的angularjs服務調用它,因爲我嘗試過的所有方法似乎都不起作用。Web Api和Angularjs

public IHttpActionResult GetPeople(string query) { 
    var results =db.People.Where(q=>q.Name.Contains(query)); 
    return OK(results) 
} 

還有另一種方法,只返回我的數據庫中的所有d項與相同的GetPeople(),但沒有參數。

我試着在我的angularjs服務調用它作爲

Search : function (q) { 
    var deffered = $q.defer(); 
    $http.get("/api/People/"+q).success(deffered.resolve).error(deffered.reject); 
    return deffered.promise; 
} 

如何調用d GetPeople方法,需要一個搜索值

回答

0

試試這個:

$http({ method:'GET', url:"/api/People/", params: { query:q}}) 

它也可能是你的服務器端方法聲明。你有一個Route屬性映射GetPeople到API /人?

0

稍尖,試圖調用API之前編程嘗試手動調用它, 這將有助於如果你可以分享你的路由配置, 但無論如何,我認爲這應該工作 -

Search : function (q) { 
     var deffered = $q.defer(); 
     $http.get("/api/People?query?"+q).success(deffered.resolve).error(deffered.reject); 
     return deffered.promise; 
} 

在默認web api接受動作中的參數作爲查詢參數, 所以這應該工作, 如果你想要一個「漂亮」的路線,你應該在你的應用程序的RouteConfig部分創建一個新的路線。