调用Api控制器PostAsJsonAsync简单类型参数

时间:2017-08-10 18:34:46

标签: json asp.net-web-api complextype

我使用PostAsJsonAsync调用MVC Api控制器。

如果我想像Class实例一样传递Complex类型,它可以正常工作。但我需要将简单类型传递为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){}

如果尝试使用Int类型的其他Mehtod,它也不起作用..

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

public void MethodA(int id){}

如果我将该值分配给类似于类的复杂类型..它可以正常工作。

PostAsJsonAsync仅适用于复杂类型?怎么能让它起作用?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-1)

看起来像是解析问题。首先创建字符串变量然后传递给方法。

string x = (string)value;