WebAPI或Asp.Net MVC? [关闭]

问题描述 投票:1回答:2

我正在开发一个Web应用程序,其想法是使用ASP.Net MVC。各种网页将依赖于从数据库中提取的数据,例如员工列表,产品列表。

  1. 一种方法是创建一个webAPI项目,并公开像GetEmployees()这样的方法,在我们需要的视图中,我们直接通过这个web api获取它。

但是,如果我们根本不创建任何web api项目呢?而是在我的MVC控制器类中,我编写了返回员工/产品列表的方法,然后通过AJAX在视图中使用这些方法。

这种方法可能存在哪些缺点?

谢谢

asp.net-mvc-4 asp.net-web-api
2个回答
2
投票

是的你可以创建一个APIControllerGetEmployees()动作返回你的Asp.NET MVC应用程序中的jsonxml,但它不是为此而做的。

我建议你用树项目做一个解决方案:

  • 包含实体和访问方法的类库
  • 一个ASP.net MVC应用程序,引用类lib,并呈现Html网页。
  • 一个ASP.net API应用程序,也引用类库,并呈现实体转储

实现此目的,您可以在不干扰Web应用程序的情况下对API进行大量调用,反之亦然


0
投票

Learn About ASP.NET MVC

ASP.NET MVC为您提供了一种强大的,基于模式的方法来构建动态网站,从而实现关注点的清晰分离,并使您可以完全控制标记,从而实现愉快,敏捷的开发。 ASP.NET MVC包含许多功能,可以实现快速,TDD友好的开发,以创建使用最新Web标准的复杂应用程序。

Learn About ASP.NET Web API

ASP.NET Web API是一个框架,可以轻松构建可覆盖广泛客户端的HTTP服务,包括浏览器和移动设备。 ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。

这里的核心差异是预期的用例。是的,您可以使用MVC实现RESTful服务,并且可以从Web API返回HTML视图。特别是在.net Core中,它们变得更加相似。

尽管如此,微软的开发人员还没有做到这一点,并且保持预期用途将主要对您来说很方便。

关于你的问题:

如果您想主动返回使用ajax调用的网站,请使用mvc。

如果要通过部署单页应用程序来分离客户端/服务器,请使用Web API作为主干。

© www.soinside.com 2019 - 2024. All rights reserved.