我想从 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