gpt4 book ai didi

javascript - asp.net web api 应用程序中的 Route 和 RoutePrefix 问题

转载 作者:行者123 更新时间:2023-12-02 14:54:22 27 4
gpt4 key购买 nike

我有一个 Web API 应用程序,需要在其中更改路由配置。

Javascript

$.ajax({
type: "GET",
url: "api/collaborators",
success: function (data) {

}});

在 Controller 中

[RoutePrefix("api/")]
public class AccountManageController : BaseApiController
{
[Authorize]
[HttpGet]
[Route("collaborators")]
public IEnumerable<CollaborateurModel> GetAllCollaborators() {...}
}

我收到一个异常,表明未找到该服务!此外,即使我直接将网址输入浏览器,也会得到相同的结果。

WebApiConfig.cs

public static class WebApiConfig
{
public static string UrlPrefix { get { return "api"; } }
public static string UrlPrefixRelative { get { return "~/api"; } }

public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: WebApiConfig.UrlPrefix + "/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: WebApiConfig.UrlPrefix + "/{controller}"
);
}
}

我需要知道

  1. 问题的原因是什么?
  2. 我该如何修复它?

谢谢

最佳答案

1) 您正在尝试使用Attribute Routing ASP.NET Web API 2但你不是 Enabling Attribute Routing

2) 这就是修复它的方法。

public static class WebApiConfig {

public static string UrlPrefix { get { return "api"; } }
public static string UrlPrefixRelative { get { return "~/api"; } }

public static void Register(HttpConfiguration config) {
//Enable Web API Attribute routing.
config.MapHttpAttributeRoutes();

// Other Web API configuration
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: WebApiConfig.UrlPrefix + "/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);

config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: WebApiConfig.UrlPrefix + "/{controller}"
);
}
}

关于javascript - asp.net web api 应用程序中的 Route 和 RoutePrefix 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35938382/

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