2013-08-22 45 views
0

我是很新的MVCMVC URL指向錯誤的Web API控制器

//本地主機:51525/API /產品/ GetPromotionTypes

控制器我有是波紋管

public IEnumerable<Product> GetAll() 
    { 
     return Utility.GetDiscountItems(); 
    } 

    public Product GetProduct(string Id) 
    { 
     return Utility.GetProduct(Id); 
    } 
    public String PostBag(Bag bagofItem) 
    { 
     return Utility.PostBagDiscountedItem(bagofItem); 
    } 
    public List<PromotionType> GetPromotionTypes() 
    { 
     return Utility.GetPromotionTypes(); 
    } 

當我從它指向控制器GetProduc(),但我想它來調用GetPromotionTypes()

上述URI調用210

我做錯了什麼 感謝您的全部幫助

+2

這是一個WebAPIController? –

+0

控制器的名稱是什麼,它是api,產品是「動作」? 只是告訴我們你的控制器代碼,你的路線,我們將能夠更好地幫助你 –

回答

2

如果這是一個WebAPI控制器,那麼每個控制器只能有一個GET方法。

WebAPI被設計爲每個實體類型只有5個調用,GET(一個項目/列表項),POST,PUT和DELETE。這允許REST URL,例如文件夾/ Get/5,文件夾/獲取等。

您應該爲PromotionType添加另一個API控制器。

請在這裏查看本教程。 http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

+0

是的,我非常確定這確實是WebAPI('/ api/products /')好抓。 –

+1

@DimitarDimitrov謝謝! :)是啊,注意到URL中的'/ api /'。 –

+2

具體來說,我會指向[路由和動作選擇](http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection)。我還會注意到,你可以有多個GET動作,但有不同的參數 - 所以你可以有5個以上。 – Kobi

0

您沒有正確設置Routing。我想它會把你的電話作爲一個簡單的GET請求與GetPromotionTypes參數。