在一个项目中混合Web Api和ASP.Net MVC页面
如何在一个项目中混合Web API和ASP.Net MVC页面?
例如,我有模型用户。 我想,在同一个项目中,有一个ApiController将响应所有的HTTP动词来pipe理用户实体,同时有一个Controller,根据请求的Action返回合适的强types视图。
我无法命名两个控制器UserController。 什么是最好的方法呢? 我应该命名一个UserApiController和另一个UserController? 还有其他build议吗?
你可以把它们放在不同的名字空间中,比如MyApp.Controllers.UsersController和MyApp.Controllers.WebAPI.UsersController。
这会让你在MVC和WebAPI中公开类似的URI路由,例如:
/users/1 << MVC view /api/users/1 << Web API
WebApi实现应作为MVC应用程序中的独立区域添加。 这是天作之合。 这样做可以为您提供Mike Wasson推荐的独立名称空间,此外还可以自然地设置/ api路由。 你得到一个单独的模型文件夹
此外,它与项目的其余部分是非常明确的分离。 如果将来的需求是这样的,那么你需要将api实现分离到一个单独的项目中,将api实现分离到一个单独的区域使得分解变得更容易。
我没有改变命名空间,唯一要做的就是先注册WebApi,然后注册MVC路由
//First register WebApi router GlobalConfiguration.Configure(WebApiConfig.Register); //and register Default MVC Route after RouteConfig.RegisterRoutes(RouteTable.Routes);
一切都很好
- 如何将parameter passing给mvc 4中的局部视图
- 当同一个用户ID试图在多个设备上login时,如何终止其他设备上的会话?
- ASP.NET Web API与ninject绑定
- 在控制器方法中重新validation修改后的ViewModel?
- WCF vs ASP .Net Web API
- ASP.NET MVC 4 + Ninject MVC 3 =没有为此对象定义的无参数构造函数
- 无法在MVC4 Web API中加载文件或程序集“System.Net.Http,Version = 2.0.0.0”
- 如何创buildASP.NET Web API Url?
- 带有ASP.NET Web API的JSONP