gpt4 book ai didi

c# - Web API 2 路由 - 路由属性

转载 作者:太空狗 更新时间:2023-10-29 17:33:07 25 4
gpt4 key购买 nike

问题是关于使用 Route 属性定义自定义路由。

我知道在 WebApiConfig 类中你总是定义默认路由,

configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });

我无法工作的是当我想传递另一个参数时。我知道我可以做到这一点(下面的代码在上面列出的默认路由下定义):

    //configuration.Routes.MapHttpRoute(
// name: "GetBrandImagePaths",
// routeTemplate: "api/{controller}/{id}/{type}");

但我宁愿使用自定义路由,而不是在 WebApiConfig 文件中定义所有这些路由。 但是,如果文件中没有上面注释掉的代码,我会收到 404。这让我相信自定义 Route 甚至都没有被查看。

public class HelperApiController : ApiController
{
[HttpGet]
[Route("api/helperapi/{id}/{type}")]
public string GetBrandImages(int id, string type)
{
.....
}
}

我怎样才能使用 WebApiConfig 文件中定义的路由,并在各个 API Controller 中定义自定义路由。

注意这个项目也是一个MVC项目(不仅仅是WebApi)。有没有我遗漏的东西,做错了什么等?我知道那里有很多定义如何传递多个参数的帖子,但我认为我的问题更具体一些,说明为什么一个有效,而另一个无效。

最佳答案

您需要调用 config.MapHttpAttributeRoutes()

这将解析所有 Controller 类并从属性派生路由。

我不会将其与标准路由混合使用。

关于c# - Web API 2 路由 - 路由属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com