对testdata控制器的API调用仅适用于使用ID的REST调用。
我有一个自定义路由显示在下面,每次我调用http://localhost:56762/api/web/testdata/
没有任何反应(我在IEnumerable<TestData> Get()
设置断点,并且没有调用)。不管怎么说,如果我打电话给http://localhost:56762/api/web/testdata/1
,我就会使用Id工作的get方法。
config.Routes.MapHttpRoute(
name: "TestData",
routeTemplate: "api/web/testdata/{id}",
defaults: new {controller="testdata", id = RouteParameter.Optional }
);
// GET api/web/testdata/5
public string Get(int id)
{
return "TEST DATA!";
}
public IEnumerable<TestData> Get()
{
...
return listTestData;
}
答案 0 :(得分:-1)
testdata
中需要routeTemplate
括号,见下文:
config.Routes.MapHttpRoute(
name: "TestData",
routeTemplate: "api/web/{controller}/{id}",
defaults: new {id = RouteParameter.Optional }
);
更新
如果您想为路线指定特定的控制器,请参阅以下内容:
config.Routes.MapHttpRoute(
name: "TestData",
routeTemplate: "api/web/{controller}/{id}",
defaults: new { controller = "testdata", id = RouteParameter.Optional }
);
注意:您需要在Register方法中删除或注释掉默认Api路由。