APIを介して呼び出されるサーバー側ロジックを移動しています。私はAJAXコールから打撃を受けることができません。私のコードに何が間違っているのか、コントローラでアクションが見つからないというエラーが表示されるのはなぜですか?AJAXポストリクエストからAPIコントローラのアクションを実行できません
コントローラアクション
[System.Web.Http.HttpPost]
public HttpResponseMessage assignViews(string selectedViews, string volIds)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
AJAXリクエストルートRに
self.saveViews = function() {
var data = {
selectedViews: self.selectedViews().toString(),
volIds: populateSelectedVolIds().toString()
};
var jsonData = ko.toJSON(data);
$.ajax({
url: "../../ja/ClientView/assignViews",
type: "POST",
contentType: "application/json; charset=utf-8",
cache: false,
data: jsonData,
success: handleViewsForClientSuccess,
error: handleEditViewsErrors
});
};
ルーティング
:たとえば、あなたは、コード内でこのモデルを作成:
をそして、このようなあなたの行動を変えますassignViews(アクション名)はルーティングの一部ではないため、含めません。 [2]パラメータとして文字列の代わりにモデルを使用することをお勧めします。モデルを使用すると、バインディングが正しく機能します。もう一つのオプションは[FromBody]属性を使うことです。 –
アクション名をオフにしても機能しませんでした。私はモデルオブジェクトを作成し、それをパラメータとして設定しようとしています。うまくいけばうまくいきます。 –
魅力的なモデルを作成する。私はそれを受け入れることができるようにこれを答えてください。ご協力いただきありがとうございます! –