2

私は asp.net MVC 4.0 を使用しています。私の API コントローラーには、AJAX 呼び出しを介して呼び出される 2 つの保存メソッドがあります。問題は、両方が同時に機能していないことです。つまり、メソッドが呼び出されません。私が一方にコメントすると、もう一方は正常に動作します

APIController のサンプルコード:

[HttpPost]
public IEnumerable<Model1> Save1 (Model1 model1)
{
    //code
}


[HttpPost]
public IEnumerable<Model2> Save2(Model2 model2)
{

} 

json のコード:

 $.ajax
         ({
             url: "/api/Myapi/Save1",                 
             type: 'POST',
             dataType: "json",
             contentType: "application/json; charset=utf-8",
             data: JSON.stringify(model1),
             success: function (data) {
                 alert("success");

                 return true;
             }
         });  

Save2 メソッドの同様のコードを提案してください。

4

1 に答える 1

1

標準のRESTfulルーティング規則に違反し、アクションにカスタム名を使用する場合は、パーツWebApiConfigを含むカスタムルートを定義する必要があります。{action}

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

RESTfulルーティング規則では、HTTP動詞ごとおよびリソース(つまりAPIコントローラー)ごとに1つのアクションを実行する必要があります。

于 2013-03-06T11:00:50.560 に答える