小编Ada*_*vas的帖子

从 OWIN 托管的 WebApi 到 MVC 的链接,反之亦然

我想从 mvc 视图到 WebApi 控制器以及从 WebApi 到 MVC 操作生成 url。通常这些方法工作得很好:

// mvc to webapi
@Url.HttpRouteUrl("DefaultApi", new { controller = "Test" })

// webapi to mvc
Url.Link("Default", new { controller = "Home" }
Run Code Online (Sandbox Code Playgroud)

将 WebApi 移动到 OWIN 主机后,这些方法会抛出异常,因为 Mvc 和 WebApi 看不到彼此的路由。

System.ArgumentException: A route named 'DefaultApi' could not be found in the route collection.
Parameter name: name
at System.Web.Routing.RouteCollection.GetVirtualPath(RequestContext requestContext, String name, RouteValueDictionary values)
...
Run Code Online (Sandbox Code Playgroud)

当使用 OWIN 主机配置 WebApi 时,如何生成这些链接?

更新:我的启动配置:

public void ConfigureWebApi(IAppBuilder app)
{
    var config = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-routing asp.net-web-api asp.net-web-api-routing owin

5
推荐指数
0
解决办法
888
查看次数