我有點困惑。我有一個控制器(從ApiController派生),它具有以下方法:Web.API和FromBody
[ActionName("getusername")]
public string GetUserName(string name)
{
return "TestUser";
}
我的路由設置是這樣的:
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我一直得到一個400錯誤,當我試着打/api/mycontroller/getusername/test
與小提琴手的GET。
我發現當我將[FromBody]
添加到GetUserName中的name參數時,所有工作都正常。
我在某種程度上認爲[FromBody]
用於HttpPost
,表示該參數在帖子主體中,因此GET
不需要。看起來我雖然錯了。
這是如何工作的?
你嘗試將'name'重命名爲'id'嗎?您的路由需要一個名爲'id'的參數映射到。 –
此外,是否添加'[FromBody]'實際上將'name'參數設置爲值'test'? –