2016-06-14 33 views
0

我有這樣一段腳本:如何引用不在控制器目錄中的控制器中的函數?

return $http.get('/Home/GetPersons'); 

只要功能GetPersons駐留在控制器HomeController的,所有的罰款和花花公子,但我需要將它移動到一個控制器,將不會在Controllers目錄中,而是在[Project]/API/somethingController中,那麼我如何在我的代碼中引用它?

+0

將其稱爲'something/GetPersons' –

+0

不起作用。請記住,它不在默認的控制器文件夾下。 – PowerCheez

+0

您可能需要爲此新結構創建不同的路線。但首先,我真的會試着去理解爲什麼你需要這樣的東西。 – jpgrassi

回答

0

asuming您使用asp.net網站的API,你可以增加新航線這樣

public static void Register(HttpConfiguration config) 
    { 
     // Web API routes 
     config.MapHttpAttributeRoutes(); 

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

,然後在角度可以查詢你ProductsDataController

$http.get('api/ProductsData/MyControllerAction'); 

附:在asp.net中有命名約定 - 要撥打EntitiesController,您應該將其稱爲Entities在url中

+0

我只是雙重檢查了路線......他們已經遺漏了「{動作}」部分...我繼續添加它等瞧!有用!謝謝! – PowerCheez

+0

如果您使用REST,則可以避免在路由掩碼中使用{id}。但我最終不得不使用它。所以是的,如果您在路由中聲明瞭{id},則應該將操作名稱添加到您的查詢網址中。我更新了答案,因此現在可以將其標記爲有用 – Denis

相關問題