Web API 2 与 MVC 项目混合
Web API 2 mixed with MVC project
我刚刚向我的 MVC 5 项目添加了一个空的 Web API 2 控制器。我正在尝试通过 Web 浏览器的地址栏中的以下内容调用 WebAPI:
http://localhost:25488/api/devices/
或
http://localhost:25488/api/devices/GetLastConditionForAll
但是,我收到了 404,未找到,并且它没有在我的控制器中达到我的断点。
添加 Web API2 控制器创建了一个 WebApiConfig.cs,如下所示:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
它也将我的Application_Start()修改为:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
这是我的网站API 2 控制器:
public class DevicesController : ApiController
{
public IHttpActionResult GetLastConditionForAll()
{
IEnumerable<X_Cas_Condition> conditionEntries;
try
{
//conditionEntries = DbContext.Database.SqlQuery<X_Cas_Condition>(cmdToGetLastStatus);
conditionEntries = new List<X_Cas_Condition>();
return Ok(conditionEntries);
}
catch
{
conditionEntries = new List<X_Cas_Condition>();
return NotFound();
}
}
}
在你的Application_Start()
中:
GlobalConfiguration.Configure(WebApiConfig.Register); // first.
RouteConfig.RegisterRoutes(RouteTable.Routes); // second.
我刚刚向我的 MVC 5 项目添加了一个空的 Web API 2 控制器。我正在尝试通过 Web 浏览器的地址栏中的以下内容调用 WebAPI:
http://localhost:25488/api/devices/
或
http://localhost:25488/api/devices/GetLastConditionForAll
但是,我收到了 404,未找到,并且它没有在我的控制器中达到我的断点。
添加 Web API2 控制器创建了一个 WebApiConfig.cs,如下所示:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
它也将我的Application_Start()修改为:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.Register);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
这是我的网站API 2 控制器:
public class DevicesController : ApiController
{
public IHttpActionResult GetLastConditionForAll()
{
IEnumerable<X_Cas_Condition> conditionEntries;
try
{
//conditionEntries = DbContext.Database.SqlQuery<X_Cas_Condition>(cmdToGetLastStatus);
conditionEntries = new List<X_Cas_Condition>();
return Ok(conditionEntries);
}
catch
{
conditionEntries = new List<X_Cas_Condition>();
return NotFound();
}
}
}
在你的Application_Start()
中:
GlobalConfiguration.Configure(WebApiConfig.Register); // first.
RouteConfig.RegisterRoutes(RouteTable.Routes); // second.