首页 > 解决方案 > ASP.NET MVC 与 Web API 或..... Nancyfx 相结合?

问题描述

我从未使用过传统的 ASP.NET MVC,而是从 Nancyfx 开始的。我正在考虑切换到 ASP.NET MVC + Web API,但有一些一般性问题。

我想我可能已经被 Nancyfx 宠坏了,但我有一些真正的问题和担忧,这就是为什么我不确定我的重写。主要问题是加载时间。我知道它会在首次加载时编译 Razor 视图,这会延长加载时间,但存在导致它无法工作的错误(已知问题)。我已经实现了一种解决方法,但我已经读到 ASP.NET MVC 可以预编译以避免这种情况(Nancyfx 不能)。

使用 ASP.NET MVC + Web API 进行一些研究,似乎 Web API 是用于 restful 端点,而 ASP.NET MVC 是用于服务页面。如您所知,Nancyfx 将这两种技术合二为一,非常棒。我对此是否正确,或者是否有办法让 ASP.NET MVC 为 Razor 页面提供服务,并根据请求类型为 JSON/XML 请求提供服务?

老实说,我不太关心使用 ASP.NET 核心,因为我的应用程序大量集成到 Active Directory、Microsoft Exchange 和其他不在其他平台上的其他 Windows 应用程序中。想要将它部署在 Linux 服务器上的人对于我正在做的事情来说是一种毫无意义的 IMO。

标签: c#asp.net-web-apirazormodel-view-controller

解决方案


简单地说,ASP.NET MVC 为您提供了两个控制器基类:ControllerApiController。如果要创建基于视图的控制器操作,则从Controller类继承,如果要创建 API 操作,则从ApiController继承。另一方面,在 ASP.NET Core 中,您可以使用相同的控制器基础结构来交付视图以及 REST API。您始终可以结合使用 .NET Framework 和 ASP.NET Core。但是,.NET + ASP.NET Core 解决方案仅适用于您显然没有问题的 Windows。


推荐阅读