在同一个项目中,在mvc 5和api 2.2之间分开路由

时间:2014-11-03 00:28:37

标签: asp.net-mvc asp.net-web-api routing

我有一个运行mvc 5和web api 2.2的项目,但是每个项目都有自己的路由系统。

问题是两者都回应api.domain.com并且都响应www.domain.com

所以我需要api.domain.com没有任何关系,例如api.domain.com/blog,这是一个只应该属于www.domain.com/blog的网址。同样的方式我也无法访问www.domain.com/api /...

我正在考虑检查Application Requet中的url并在那里运行if语句,但这对我来说听起来不对。

是否需要在同一解决方案下将它们分成两个独立的项目并交叉引用项目/库?

1 个答案:

答案 0 :(得分:1)

您可以使用IIS URL重写模块将请求重写为api.domain.com/.../api/...www.domain.com/web/...。现在,您可以在应用程序中拥有完全独立的路径。

或者您可以创建一个自定义操作筛选器来检查域并将其应用于每个类或方法,以将其限制为仅响应该域。或者当然,您需要为MVC和WebAPI单独设置一个动作过滤器,但那是另一个故事......