【发布时间】:2014-08-05 23:25:13
【问题描述】:
我有一个新的 ASP.NET MVC 5 应用程序。 我在我的控制器文件夹中添加了一个 /api 文件夹,并添加了一个 MVC2 API 控制器。
我的 global.asax 有:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
我的控制器看起来像:
public class UsersController : ApiController
{
[HttpGet]
[ActionName("User")]
public IToken GetUser()
{
return new User();
}
}
现在我在转到以下位置时收到 404 资源找不到错误:
http://localhost:53323/api/users/user
http://localhost:53323/api/users/getuser
可能是什么问题?
更新
我的 MVC 路由配置:
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 }
);
}
我的 API 路由配置:
config.MapHttpAttributeRoutes();
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }
//);
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
【问题讨论】:
-
你能把代码贴在你的 RouteConfig 中吗?
-
您是否更改了
WebApiConfig.cs文件夹中的App_Start文件? -
@Ghukas 见上面我的 webapi 配置。
-
你是否有一个与stackoverflow.com/questions/10677745/…相同的命名空间下同名的mvc控制器?
-
这是一个新的解决方案,我还有 1 个其他 MVC 控制器 HomeController
标签: asp.net asp.net-mvc asp.net-web-api