我有一個情況我有以下兩種方法之一接受波蘇和我控制器類POCO的另一個列表:如何使用ASP.Net WebApi重載的方法?
[AcceptVerbs("PUT")]
[ActionName("Item")]
public void SaveItem([FromBody] Item item)
{
m_controller.SaveItem(item);
}
[AcceptVerbs("PUT")]
[ActionName("Items")]
public void SaveItems([FromBody] List<Item> items)
{
m_controller.SaveItem(items);
}
我的路由表看起來像:
routes.MapHttpRoute("Item Route",
"api/item/{orderId}",
new
{
controller = "MyOrder",
action = "Item",
orderId = RouteParameter.Optional
});
routes.MapHttpRoute("Items Route",
"api/items/{orderId}",
new
{
controller = "MyOrder",
action = "Items",
orderId = RouteParameter.Optional
});
可正常工作。但我想過重構代碼來嘗試重載。我試圖重載我的控制器中的方法,只有一個路由,但失敗了500錯誤 - 無效的請求。我認爲webapi將通過驗證參數來解析調用 - 如果它是一個列表,那麼它將調用帶有list作爲參數的重載方法,否則將調用其他方法。我正打算做這樣的事情:
[AcceptVerbs("PUT")]
[ActionName("Item")]
public void SaveItem([FromBody] Item item)
{
m_controller.SaveItem(item);
}
[AcceptVerbs("PUT")]
[ActionName("Item")]
public void SaveItem([FromBody] List<Item> items)
{
m_controller.SaveItem(items);
}
我的路由表看起來像:
routes.MapHttpRoute("Item Route",
"api/item/{orderId}",
new
{
controller = "MyOrder",
action = "Item",
orderId = RouteParameter.Optional
});
你有什麼異常? – 2013-04-04 14:42:34
我總是收到「500錯誤 - 無效請求」。沒什麼。 – 2013-04-04 14:58:03
您是否遠程訪問? – 2013-04-04 15:00:04