Asp.net mvc 同一项目中mvc 5和api 2.2之间的单独路线

Asp.net mvc 同一项目中mvc 5和api 2.2之间的单独路线,asp.net-mvc,asp.net-web-api,routing,Asp.net Mvc,Asp.net Web Api,Routing,我有一个项目同时运行MVC5和WebAPI2.2,但是每个项目都有自己的路由系统 问题是两者都响应api.domain.com,也都响应www.domain.com 因此,我需要api.domain.com与api.domain.com/blog没有任何关系,这是一个只属于www.domain.com/blog的url。同样,我也不能访问www.domain.com/api/ 我正在考虑检查应用程序请求中的url,并在那里运行if语句,但是我觉得它不太合适 是否需要将它们拆分为同一解决方案下的两

我有一个项目同时运行MVC5和WebAPI2.2,但是每个项目都有自己的路由系统

问题是两者都响应api.domain.com,也都响应www.domain.com

因此,我需要api.domain.com与api.domain.com/blog没有任何关系,这是一个只属于www.domain.com/blog的url。同样,我也不能访问www.domain.com/api/

我正在考虑检查应用程序请求中的url,并在那里运行if语句,但是我觉得它不太合适


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

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


或者,您可以创建一个自定义操作筛选器来检查域,并将其应用于每个类或方法,以约束它仅响应该域。当然,对于MVC和WebAPI,您需要一个单独的操作过滤器,但这是另一回事……

在同一个解决方案中,可能会重复单独的项目:)