gpt4 book ai didi

asp.net - 从 ASP.NET MVC 应用程序访问 Web API 路由

转载 作者:行者123 更新时间:2023-12-02 17:16:38 24 4
gpt4 key购买 nike

我有一个包含 2 个项目的解决方案。一个是 ASP.NET Web API 项目,另一个是 ASP.NET MVC 项目。 Web API 将从不同的客户端使用。如果这两个项目是一个,我可以为我的 api 生成一个链接,如下所示:

@Url.RouteUrl("ActionApi", new { httpRoute = string.Empty, controller = "User", action = "AddChildAsync" });  

但是现在这两个项目是分开的,我无法执行此操作,因为 mvc 应用程序找不到 Web api 的配置(尽管我有从 mvc 应用程序到 Web api 的项目引用)。那么有没有什么优雅的方式来访问web api配置并动态生成链接呢?提前致谢。

最佳答案

您应该能够通过更改 httproute = true 来访问它。

@Url.RouteUrl("ActionApi", new { httpRoute = true, controller = "User", action = "AddChildAsync" });

或者您可以这样做来指定它的 webapi 路由。

@Url.HttpRouteUrl("ActionApi", new { controller = "User", action = "AddChildAsync" });  

但是您确实需要在 Global.asax 中完成 WebApi 注册并安装 NuGet WebApi 包。

此外,正如您在上面的链接中引用的那样,通常操作不会包含在 route 。它们通常是未命名的,并通过请求(GET、POST PUT 等)提供。除非你的路由配置看起来像这样,否则这些都会被省略。

routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional } );

关于asp.net - 从 ASP.NET MVC 应用程序访问 Web API 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331449/

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