WebApi 控制器添加到 MVC 网站 Route 404
WebApi controller added to MVC website Route 404
我正在尝试从 JavaScript 函数调用 WebApi 方法。
通过Fiddler可以看到发出的请求是:
http://localhost:49601/api/faults?page=1&pageSize=5&filter=&sort=insertedDate+desc
我最初使用 MVC 模板创建了我的网站(Visual Studio 2015 年)。我后来添加了一个 WebApi 控制器。我还将现有的 WebApiConfig.cs 添加到 App_Start 文件夹中。这保持不变:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我的新 WebApi 控制器开始如下:
public class FaultsController : ApiController
{
private ESBContext _context;
private IRepository<Fault> FaultRepository;
private static ILog _logger =
LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public FaultsController(ESBContext context)
{
this.FaultRepository = new EFRepository<Fault>(context);
_context = context;
_context.Database.Log = (x => _logger.Debug(x)); //send EF queries via log4net
}
public IHttpActionResult GetFaults([FromUri]int page, [FromUri]int pageSize, [FromUri]string filter, [FromUri]string sort)
{
发出请求后,我收到 404 返回。谁能告诉我哪里出错了?
找到了!
我需要将以下内容添加到 Global.asax.cs 的 Application_Start 方法中:
GlobalConfiguration.Configure(WebApiConfig.Register);
我正在尝试从 JavaScript 函数调用 WebApi 方法。
通过Fiddler可以看到发出的请求是:
http://localhost:49601/api/faults?page=1&pageSize=5&filter=&sort=insertedDate+desc
我最初使用 MVC 模板创建了我的网站(Visual Studio 2015 年)。我后来添加了一个 WebApi 控制器。我还将现有的 WebApiConfig.cs 添加到 App_Start 文件夹中。这保持不变:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我的新 WebApi 控制器开始如下:
public class FaultsController : ApiController
{
private ESBContext _context;
private IRepository<Fault> FaultRepository;
private static ILog _logger =
LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public FaultsController(ESBContext context)
{
this.FaultRepository = new EFRepository<Fault>(context);
_context = context;
_context.Database.Log = (x => _logger.Debug(x)); //send EF queries via log4net
}
public IHttpActionResult GetFaults([FromUri]int page, [FromUri]int pageSize, [FromUri]string filter, [FromUri]string sort)
{
发出请求后,我收到 404 返回。谁能告诉我哪里出错了?
找到了!
我需要将以下内容添加到 Global.asax.cs 的 Application_Start 方法中:
GlobalConfiguration.Configure(WebApiConfig.Register);