在单个实体中混合使用MVC和Web API

时间:2018-09-11 17:56:41

标签: asp.net ajax asp.net-mvc asp.net-web-api

我对ASP.NET相当陌生。我开始从事自己​​的项目,以通过编码获得一些经验。我知道在单个项目中混合使用MVC和Web API是一种常见做法,并且实际上是许多开发人员推荐的做法。但我想以特定方式混合它们-这是一个示例:

我想给我的用户一个发布帖子的机会(类似于Facebook,Twitter等)。我有一个帖子模型,我想用一些简单的逻辑来实现基本的CRUD操作(例如,用户不能删除其他人发布的帖子)。我想使用MVC实现C和U操作(使用在单独站点上构建的表单),但是我想使用Web API实现R和D-其背后的原因是,我想使用JS和AJAX调用来动态更改用户单击“删除”按钮后,每次都使用DOM代替重新加载页面。我还希望仅在显示页面上加载前5个帖子,并提供一个按钮,以在用户愿意时加载更多帖子-无需实际刷新页面。

所以我的问题是:将这两者混合在单个实体(数据库中的单个表,不确定如何调用)中通常是一种好习惯吗?如果不是,您会向我推荐什么其他解决方案?还是我完全误解了MVC和Web API概念?任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不确定是什么问题。您可能有一个用于创建和更新的MVC控制器,以及一个用于读取和删除的API控制器。它们与数据库中的同一实体(模型)进行交互无关紧要。

我建议通过该实体的服务执行业务逻辑,而不是在两个控制器上都重复执行。将该服务的实例注入到两个控制器的构造函数中,并以此方式与模型进行交互。