2017-08-10 44 views
0

我打電話給一個使用PostAsJsonAsync的MVC Api控制器。調用Api控制器PostAsJsonAsync簡單類型參數

如果我想傳遞一個類似於類實例的複雜類型,它工作正常。但我需要通過一個簡單的類型爲string,或int

HttpResponseMessage response = await 
client.PostAsJsonAsync("http://localhost:62536/api/Controller/Method", "HELLO"); 

得到一個錯誤404 Method沒有找到。

我WebApiController看起來像這樣

config.MapHttpAttributeRoutes(); 
config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

我的API控制器的方法是這樣的。

public void Method(string id){} 

如果嘗試另一種Mehtod與Int類型如果我說值賦給一個複雜類型,像類不工作,要麼..

HttpResponseMessage response = await 
    client.PostAsJsonAsync("http://localhost:62536/api/Controller/MethodA", 123); 

public void MethodA(int id){} 

..它工作正常。

僅限PostAsJsonAsync適用於複雜類型?它如何使它工作?

+0

的可能的複製[爲什麼我們必須指定FromBody和FromUri?](https://stackoverflow.com/questions/24625303/why-do-we-have-to-specify-frombody -and-fromuri) –

回答

1
public void Method([FromBody] string id){} 
0

看起來像解析問題。先創建字符串變量然後傳遞給方法。

string x = (string)value; 
+0

我已經試過這個...我修改了這個例子...謝謝 – Diego

+0

「http:localhost:8080, –

+0

Http:// localhost:8080 –

相關問題