【发布时间】:2016-12-20 00:42:39
【问题描述】:
作为我第一次构建 MVC 应用程序,带有控制器和其他东西。之后我意识到我也需要制作移动应用程序,所以我将新的 web api 项目放入解决方案中。
我引用了 mvc 应用程序,创建了实体模型,创建了工厂和所有东西,但是当它归结为调用 web api 控制器时,我得到返回码 404 未找到。
我认为问题在于项目的路由。所以这是我来自 SHApi 项目的 WebApiConfig。
public static void Register(HttpConfiguration config)
{
// Web API routes
config.EnableCors();
config.MapHttpAttributeRoutes();
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults:
new
{
controller="StudentOffer",
action="Get",
id = RouteParameter.Optional
},
constraints: new {controller = @"(?!web).*"}
);
}
这是我来自 MVC 应用程序的 RouteConfig。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "web/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
这是我来自 WebApi 项目的 RouteConfig。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "web/{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional }
);
routes.MapHttpRoute(name: "DefaultApi",
routeTemplate:"api/{controller}/{action}/{id}",
defaults: new { controller = "City",
action="Get",
id = RouteParameter.Optional},
constraints: new { controller = @"(?!web).*" }
);
}
我可以轻松访问 MVC 控制器,但 Web api 是不可能的。 我尝试了很多东西,但我确信我错过了一些东西,所以有没有经验的人可以帮助我,有什么诀窍可以做到这一点吗?
谢谢你!
【问题讨论】:
标签: c# asp.net-mvc asp.net-web-api routing asp.net-mvc-routing