Asp.net mvc 4 如何在webapi中识别正确的Get/Post方法 我想在webapi服务中实现两个基于不同id的get方法 如: //获取api/Data/5 公共列表GetMyDatas(int id) //获取api/Data/15 公共列表GetMyDatas(int studid)。

Asp.net mvc 4 如何在webapi中识别正确的Get/Post方法 我想在webapi服务中实现两个基于不同id的get方法 如: //获取api/Data/5 公共列表GetMyDatas(int id) //获取api/Data/15 公共列表GetMyDatas(int studid)。,asp.net-mvc-4,asp.net-web-api,asp.net-web-api2,asp.net-web-api-routing,Asp.net Mvc 4,Asp.net Web Api,Asp.net Web Api2,Asp.net Web Api Routing,如果我从我的mvc控制器调用它,它将如何识别调用哪个get方法。有没有一种方式可以这样说。我有一个mvc项目和另一个mvc webapi1项目。我从mvc项目中调用webmethod。VS 2010,MVC 4,Web API 1。您的代码将产生编译时错误,因为您有两个同名的方法 你应该做的是,创建两个不同的方法,并使用不同的url模式 启用属性路由时 I want to implement two get methods based on different id in web api ser

如果我从我的mvc控制器调用它,它将如何识别调用哪个get方法。有没有一种方式可以这样说。我有一个mvc项目和另一个mvc webapi1项目。我从mvc项目中调用webmethod。VS 2010,MVC 4,Web API 1。

您的代码将产生编译时错误,因为您有两个同名的方法

你应该做的是,创建两个不同的方法,并使用不同的url模式

启用属性路由时

I want to implement two get methods based on different id in web api service
eg:
// GET api/Data/5

 public List<Data> GetMyDatas(int id)
// GET api/Data/15
 public List<Data> GetMyDatas(int studid).

您的代码将产生编译时错误,因为您有两个同名的方法

你应该做的是,创建两个不同的方法,并使用不同的url模式

启用属性路由时

I want to implement two get methods based on different id in web api service
eg:
// GET api/Data/5

 public List<Data> GetMyDatas(int id)
// GET api/Data/15
 public List<Data> GetMyDatas(int studid).

你需要两条不同的路线。除非使用路由属性,否则不能有具有相同参数的匹配路由:它是否支持web api 1是的,这在web api 1中也是可能的,但您需要使用Nuget包来实现。我没有找到[RoutePrefix(“)]下载,然后继续。您将需要两个不同的路由。除非您使用路由属性,否则您不能有具有相同参数的匹配路由:它是否支持web api 1是的,这在web api 1中也是可能的,但您需要使用Nuget软件包。我找不到[RoutePrefix(“)]下载然后跟进我觉得web api1不支持属性路由。我无法添加RoutePrefix(“api/产品”)然后,如答案第二部分所述,向单个方法添加第二个参数。我实际上不想添加第二个参数。然后,您需要更新路由定义以将操作方法包括在路由模式中,或者为学生创建第二个控制器。是否可以使用不同的方法名称?你能给我看一个例子来更新你的路由定义以在路由模式中包含操作方法吗?我觉得web api1不支持属性路由。我无法添加RoutePrefix(“api/产品”)然后,如答案第二部分所述,向单个方法添加第二个参数。我实际上不想添加第二个参数。然后,您需要更新路由定义以将操作方法包括在路由模式中,或者为学生创建第二个控制器。是否可以使用不同的方法名称?您能给我看一个更新路由定义的示例,以便在路由模式中包含操作方法吗
public List<string> GetMyDatas(int id,string mode="")
{
    //based on the mode value, return different data.
    return new List<string> {"product 1", "value2", id.ToString()};
}