2013-03-06 18 views
2

我正在与asp.net MVC 4.0,在我的API控制器我有两个保存方法,通过AJAX调用调用。问题是他们两个不同时工作,即该方法不被调用。 如果我评论一个其他作品精细APIController的在asp.net mvc 4.0多种保存方法不工作在api控制器

示例代码:

[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方法 请提出类似的代码。

+1

显示'WebApiConfig.cs'文件 – 2013-03-06 10:53:39

回答

1

如果你想违反标准的REST风格的路由惯例和使用您的操作的自定义名称,你必须确定你的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 } 
     ); 
    } 
} 

REST风格的路由惯例规定每个HTTP动词和每个资源(即API控制器)应该有一个单独的动作。

+0

嗨达林季米特洛夫,其实我是新来的asp.net mvc 4.could你请解释我应该在WebApiConfig中添加什么,以便我的保存方法将工作.. – user2139492 2013-03-07 05:12:19

+0

您是否尝试过把我在答案中展示的东西放在哪里? – 2013-03-07 07:10:37

+0

雅我已经试过,但它不工作 – user2139492 2013-03-07 10:32:47

相关问题