假设我想在控制器中执行标准的CRUD操作:
接口/values- IEnumerable Get()接口/values/1- Get(int id)接口/values- FromBodystring (Delete value)接口/values/5- Put(int id,Delete value)接口/values/5-FromBodystring(Int id)
但是我想要有额外的操作,比如:
api/values/someoperation1 1 api/values/searchby...等。
在这下面有第二条路线不会有什么帮助
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}"
);发布于 2012-10-03 06:08:07
默认情况下,不可能在单个控制器中混合使用REST样式路由和RPC样式路由。
在ASP.NET Web Stack的Codeplex - http://aspnetwebstack.codeplex.com/workitem/184上有一个开放的问题。
对于您来说,唯一合理的解决方案是为每个资源配置两个控制器--一个用于CRUD,另一个用于非CRUD (RPC)类型的操作。
https://stackoverflow.com/questions/12697832
复制相似问题