ASP.NET MVC4WebAPIを学習しています。2つのパラメータを受け取る新しいメソッドを作成したいと思います
[HttpPost]
public string MarkAsSeen(int objectID, long userID)
jqueryを使用してそれを消費したいと思います:
$.ajax({
type: "POST",
url: "/api/tutorial/MarkAsSeen",
data: JSON.stringify({ objectID: _obj, profileID: _pid }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(_tutorial + ' seen');
},async: true
});
ルートをこのように構成しました
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);
しかし、それは機能しません:
リクエストURI'http://local.dev.unation.com/api/tutorial/MarkAsSeen'に一致するHTTPリソースが見つかりませんでした。"、" MessageDetail ":"コントローラー'Tutorial'に一致するアクションが見つかりませんでした。リクエスト。
ルートのテンプレートをapi/{controller} / {action} / {objectID} / {profileID}に変更し、jqueryメソッドを使用してこの情報をURLに追加した場合:/ api / tutorial / MarkAsSeen / + _obj + / + _pid it動作します。
次の理由により、これらの変更を実行したくありません。
- すべてのアクションへの1つの一般的なルートが必要です(したがって、パラメーター名/数量は重要ではありません)
- このURLの追加は見苦しいです。データ属性を使用したいと思います。
私が間違っていることを教えてもらえますか?
tks!