1

我有一个相当复杂的解决方案,我使用 ASP Web API 等实现了它。我的解决方案中有 3 个项目现在值得一提。一种是仅包含 api 方法的 WebAPI。另外两个是我的应用程序的后端和前端。后端使用 SPA 方法为视图加载大部分空壳,并使用 ajax 访问 API 填充所有内容。另一方面,出于对 SEO 的考虑,前端决定通过更传统的方式实现,也就是大多数东西都呈现在服务器端。我的问题是,是否可以简单地从前端控制器调用 web api 方法并将结果发送到视图?我认为在常规控制器中复制大多数代码没有意义,因为这一切都是通过 api 完成的。

有这方面的样本吗?我一直在寻找,但找不到太多。

4

2 回答 2

2

如果您需要从 C# 代码(MVC 控制器或其他地方)调用 Web API 服务,可以使用 HttpClient 或 WebClient 通过 HTTP 调用服务。

如果您需要简单地重用代码,则应将其抽象为类库 (DLL) 并从 Web API 和 MVC 项目中引用。

于 2013-03-23T02:01:34.117 回答
1

我遇到过同样的情况,并且至少在一段时间内使用了 MVC 控制器中的 Web API 控制器。您可以简单地通过创建 Web API 控制器的新对象然后调用它们的适当方法来做到这一点。我发现这个方法最初工作得很好,但是会创建依赖关系,这意味着你的 Web API 不能在不改变 MVC 控制器的情况下改变。

我的建议是在你的模型上添加对部分类有意义的尽可能多的功能,如果这仍然不够,那么创建另一个包含所有共享业务逻辑的逻辑层。你的 MVC 和 Web API 控制器中不应该有重复的逻辑,它们应该只是作为获取数据的粘合剂。

于 2013-03-20T21:42:56.547 回答