Vít*_*ins 7 c# rest asp.net-web-api
我想在我的api上使用GET方法,其中一个方法是带路径参数的路径:
API /人/ {} PERSONID
和一个带有查询参数的路线:
API /人?文=东西
但如果我把这个代码:
// GET: api/people/{personId}
[Route("api/people/{personId}")]
[HttpGet]
public HttpResponseMessage Get(long personId)
{
}
// GET: api/people?text=something
[Route("api/people")]
[HttpGet]
public HttpResponseMessage Get(string text)
{
}
Run Code Online (Sandbox Code Playgroud)
然后尝试打开/ api/people/1它说错误的格式,当我尝试打开/ api/people?text =它有效的东西.
我只定义了默认路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
我怎么能让他们都工作?定义如果它是一个路径参数转到第一个,如果它是一个查询参数转到第二个?
我刚刚使用 Web API 2 将其放入 Visual Studio 2015 中,并且运行良好。我确实必须添加以下几行(每个控制器方法各一行)。
return Request.CreateResponse(HttpStatusCode.OK);
Run Code Online (Sandbox Code Playgroud)
我还取消了默认路由配置。以下网址工作得很好
http://localhost:64377/api/people/1
http://localhost:64377/api/people?text=你好
当我将这些 URL 放入 IE 中时,我在控制器中点击了这两个相应的方法。
| 归档时间: |
|
| 查看次数: |
247 次 |
| 最近记录: |