2

我正在使用 asp.net MVC 4.0,在我的 API 控制器中,我有两个通过 AJAX 调用调用的保存方法。问题是它们两个不能同时工作,即没有调用该方法。如果我评论一个其他工作正常

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 控制器)应该有一个操作。

于 2013-03-06T11:00:50.560 回答