Ult*_*gma 5 asp.net-mvc asp.net-web-api
我不知道为什么,但我的api路线不起作用?我所做的是单击添加控制器,选择Web API 2控制器,使用EF进行操作(以便它为我构建)选择模型和上下文,然后单击添加.
WebApiConfig
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
ProductsController(ApiController)
public IQueryable<Product> GetProducts()
{
return db.Products;
}
Run Code Online (Sandbox Code Playgroud)
这意味着通过转到/ api/products,它会显示json格式的产品......但事实并非如此.我得到的是404:您正在寻找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.我也尝试过断点,甚至没有受到打击.所以我有点困惑.
我确实有自定义Web Route配置,我认为这可能是问题所在,但是在评论它们时仍然会发生这种情况.脚手架遗失了什么?
谢谢你的帮助
Ult*_*gma 18
在创建一个新项目并创建一个API控制器后,弹出一个文本文件(我决定关闭thinkign,我知道的更好)但是一旦关闭它就不会再弹出.
解决方案
只需在Global.asax中添加2个using语句即可
using System.Web.Routing;
using System.Web.Http;
Run Code Online (Sandbox Code Playgroud)
和GlobalConfiguration.Configure(WebApiConfig.Register); 必须首先在Application_Start方法下的同一个文件中
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register); // <--- this MUST be first
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助其他人
| 归档时间: |
|
| 查看次数: |
4099 次 |
| 最近记录: |