我们正在构建一个完整的客户端应用程序,其中数据来自通过 ASP.Net WebAPI 交付的 REST API。对于客户端应用程序,使用 MVC 仍然有意义吗?
3 回答
我认为即使对于单页应用程序(SPA) ,使用 MVC 仍然有优势。一些优点是内置的身份验证/授权、路由、渲染初始页面的方式更加灵活、如果 Web API 和 MVC 在同一个项目中,则消除了 AJAX 的跨域问题等等。
对 SPA 和 ASP.NET MVC 非常了解的人是 John Papa。查看他的一篇关于可用于 SPA 的新 VS 模板的博客文章。John Papa 在他的博客上提供了很多关于使用 ASP.NET MVC 开发 SPA 的有用技巧,并且他在 Pluralsight 上有一个很棒的培训课程。是的,他将 MVC 与 Web API 结合使用。它们被设计为一起使用。
首先让我们记住 ASP.NET MVC 和 ASP.NET Web API 的用途。ASP.NET MVC 的主要目的是为您提供一个现成的 HTML。另一方面,ASP.NET Web API 的主要目的是为您提供数据。
因此,在我看来,在以下情况下,您可以同时使用 ASP.NET MVC 和 ASP.NET Web API:
- 已经准备好使用复杂的 ASP.NET MVC 控件并希望重用它。
- 有一个复杂的逻辑来处理一些数据,因此对于性能问题,最好在服务器端处理它。
- 您必须使用一些特定的基于服务器的 ASP.NET 功能,例如 Http 处理程序、文件上传等。
本质上你不需要 MVC。听起来您想创建一个单页应用程序。您所需要的只是一个 index.html 来加载您的 app.js,然后就可以使用了。
MVC 不会增加任何额外的价值。
即使涉及到复杂的场景,您也可以创建更高级的 Web Api 方法来为您的应用程序提供服务。您不限于开箱即用的基本 CRUD WebApi 方法。
你甚至可以在 api 控制器周围放置 ActionFilters 和 DelegatingHandlers 之类的东西,以处理错误、元数据和各种事情。