我应该遵循WebApi路线惯例吗?
我想将默认路由配置(api/{controller}/{id}
)更改为api/{controller}/{action}/{id}
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
可以在我的路线中添加{action}
占位符吗?
默认WebApi路线的优缺点是什么?
答案 0 :(得分:-1)
是的,您可以在路线中使用行动名称并使用它们。 首先,您必须将以下内容添加到 WebApiConfig.cs
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
请务必在默认路由之前添加它,否则它将无效。 然后在控制器方法中添加 ActionName 属性
public class ProductsController : ApiController
{
[HttpGet]
[ActionName("Thumbnail")]
public HttpResponseMessage GetThumbnailImage(int id);
}
然后您的路线将是 / api / Products / Thumbnail
有关详细信息,请查看here
中的按操作名称路由如果这有助于您,请务必将其标记为答案:)
通过使用自定义操作名称,您可以超越控制器中的HTTP谓词,并在API中提供自定义方法