我有這樣一段腳本:如何引用不在控制器目錄中的控制器中的函數?
return $http.get('/Home/GetPersons');
只要功能GetPersons駐留在控制器HomeController的,所有的罰款和花花公子,但我需要將它移動到一個控制器,將不會在Controllers目錄中,而是在[Project]/API/somethingController中,那麼我如何在我的代碼中引用它?
我有這樣一段腳本:如何引用不在控制器目錄中的控制器中的函數?
return $http.get('/Home/GetPersons');
只要功能GetPersons駐留在控制器HomeController的,所有的罰款和花花公子,但我需要將它移動到一個控制器,將不會在Controllers目錄中,而是在[Project]/API/somethingController中,那麼我如何在我的代碼中引用它?
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中
我只是雙重檢查了路線......他們已經遺漏了「{動作}」部分...我繼續添加它等瞧!有用!謝謝! – PowerCheez
如果您使用REST,則可以避免在路由掩碼中使用{id}。但我最終不得不使用它。所以是的,如果您在路由中聲明瞭{id},則應該將操作名稱添加到您的查詢網址中。我更新了答案,因此現在可以將其標記爲有用 – Denis
將其稱爲'something/GetPersons' –
不起作用。請記住,它不在默認的控制器文件夾下。 – PowerCheez
您可能需要爲此新結構創建不同的路線。但首先,我真的會試着去理解爲什麼你需要這樣的東西。 – jpgrassi