0
我刚刚检查了attribute routing in ASP.NET Web API 2。我可以在类级别使用RoutePrefix
属性为所有操作名称URL设置前缀。大多数情况下,我使用动作名称作为特定动作的URL路由。是否有任何方法可以编写一行代码,将所有操作的Route
属性的操作名称设置为默认值?我想这是因为我使用动作名称作为URI模板,所以它将在每个动作名称上重复。在ASP.NET Web API中将动作名称自动设置为路由属性2
[RoutePrefix("api")]
//[Route("{action}")] // Possible I could write like this
public class BooksController : ApiController
{
[Route("GetBooks")] //Route value same as action name, http://localhost:xxxx/api/GetBooks
public object GetBooks() { ... }
[Route("CreateBook")] //Route value same as action name, http://localhost:xxxx/api/CreateBook
[HttpPost]
public object CreateBook(Book book) { ... }
}
编辑1:我想使用属性的路由,因为我想这样http://hostname/api/action_name
网络API URL模式。我的应用程序使用单个API控制器,所以我不希望控制器名称作为操作URI的一部分。
解决方案:[Route("{action}")]
在类级别将工作,如果您从其他所有操作中删除路由属性,除非您想覆盖任何操作。
你的解决方案很好。虽然在课堂上的'[Route(“{action}”)]'正在工作。我不知道为什么它没有提前工作。 – Xyroid