私はMVCを初めて使用するWCF開発者です。私のWCFAPIを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を送受信できますか?