我是一名 WCF 开发人员,不熟悉 MVC。尝试将我的 WCF API 作为 ApiControllers 集成到 MVC 应用程序中(是否值得努力仍然是个大问题)。
我有一个来自 jQuery 插件的请求:
POST http://localhost:18698/Api/Public/DoAction HTTP/1.1
....
Content-Type: application/json; charset=UTF-8 Accept:
application/json, text/javascript, */*; q=0.01
{"myParam":"test"}
我的控制器如下所示:
public class PublicController : ApiController
{
[HttpPost]
public string DoAction(string myParam)
{
return "Test";
}
}
而且,路由部分如下所示:
config.Routes.MapHttpRoute(
name: "PublicApi",
routeTemplate: "api/{controller}/{action}"
);
我收到此错误:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:18698/Api/Public/DoAction'.",
"MessageDetail": "No action was found on the controller 'Public' that matches the request."
}
不接受任何 JSON 参数的方法工作正常,但接受 JSON 参数的方法不起作用。我必须能够将复杂的 JSON 传递给方法。在 WCF 中,从 JSON 到对象的转换由 WCF 为我处理。
你知道我为什么会收到这个错误吗?我能否像在 WCF 中那样在 MVC 中无缝地传递/接收复杂的 JSON?