MVC和API模板的新手,熟悉C#。控制器中的嵌套函數
簡單的新WebAPI項目與一個簡單的控制器。網址路徑像/api/Clients/1
,有沒有一種方法來排序巢控制器?或者按照下面的url路徑在同一個控制器中執行一個函數:/api/Clients/1/Sysinfo/typeOf
?
我有一個模型客戶端,其中包含屬性是sysinfo項目。/api/Clients/1返回ID爲1的對象客戶端的所有屬性。例如,我只想要以/ api/Clients/1/Sysinfo/RAM返回的特定項目。
@Joachim前往Rosskopf 我已經試過這種方法。它導致404. /客戶/ 1 /作品。/clients/1/sysinfo不起作用。
使用以下路線:
routes.MapRoute(
name: "Sysinfo",
url: "Clients/{id}/Sysinfo/{type}",
defaults: new { controller = "Sysinfo", type = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
創建一個新的控制器SysinfoController:
public class SysinfoController : ApiController
{
public Sysinfo GetAllSysinfoItems()
{
return new Sysinfo { Id = 1, RAM = "1GB" };
}
public IHttpActionResult GetSysinfoByType(int id)
{
return Ok();
}
}
你的意思是你想處理*這兩種類型的URL? – James
控制器和路由上的這個鏈接可能有所幫助:http://www.asp.net/mvc/overview/controllers-and-routing – Markus
是的。正如我說的,我是MVC的新手,maby這只是一個邏輯錯誤。我有一個模型客戶端,它包含sysinfo項目的屬性。/api/Clients/1返回ID爲1的對象客戶端的所有屬性。例如,我只想要以/ api/Clients/1/Sysinfo/RAM返回的特定項目。 – z7gsr32cod586mic4a5e