gpt4 book ai didi

asp.net-mvc - API 2 Controller 在 ASP.NET MVC 5 中不起作用

转载 作者:行者123 更新时间:2023-12-04 16:25:50 27 4
gpt4 key购买 nike

我不知道为什么,但我的 api 路线不起作用?我要做的是单击添加 Controller ,选择带有使用 EF 操作的 Web API 2 Controller (以便它为我构建它)选择模型和上下文,然后单击添加。

WebApiConfig

public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}

产品 Controller (ApiController)
public IQueryable<Product> GetProducts()
{
return db.Products;
}

这意味着通过转到/api/products 它将显示 json 格式的产品......它没有。我得到的是 404:您正在寻找的资源(或其依赖项之一)可能已被删除、更改名称或暂时不可用。我也尝试过设置断点,但它甚至没有被击中。所以我有点困惑。

我确实有自定义的 Web 路由配置,我认为这可能是问题所在,但是当将它们注释掉时仍然会发生这种情况。脚手架缺少什么吗?

谢谢你的帮助

最佳答案

在创建一个新项目并创建一个 API Controller 后,一个文本文件弹出(我决定关闭 thinkign 我知道更好)但是一旦关闭它就不会再次弹出。

解决方案

只需将 2 个 using 语句添加到 Global.asax

using System.Web.Routing;
using System.Web.Http;

和 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);
}

希望这可以帮助别人

关于asp.net-mvc - API 2 Controller 在 ASP.NET MVC 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com