【发布时间】:2021-05-31 01:18:51
【问题描述】:
我有一个运行良好的控制器:
[Authorize]
[Route("api/Version")]
public class VersionController : ApiController
{
但是,如果我在其他控制器中省略 Route 属性,它将不起作用,当我转到:url/api/User 或 Users 时,我会得到 404
[Authorize]
public class UserController : ApiController
{
我的 webappi 配置
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Services.Add(typeof(IExceptionLogger), new AiExceptionLogger());
}
}
我的路由配置
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
用户控制器获取用户
[HttpGet]
public async Task<IHttpActionResult> GetUsers()
{
【问题讨论】:
-
显示操作方法的签名和您正在尝试的相关 URL。
-
@Luis Valencia:你在
RouteConfig.RegisterRoutes(RouteTable.Routes);之前打电话给GlobalConfiguration.Configure(WebApiConfig.Register);了吗? -
我的代码中没有 GlobalConfiguration.Configure
-
你也尝试过 GET
api/User/GetUsers?
标签: c# asp.net .net asp.net-mvc asp.net-web-api