我已经成功使用 ASP.Net MVC(使用 Razor 语法)一年多了,我想转向 Web API。
对于 MVC,我通常会按如下方式设置我的 n 层架构(为了便于解释而进行了简化):
- 数据(类库)
- 存储库(类库)
- 服务(类库)
- 演示文稿(MVC)
我开始不喜欢的是,在 Presenation 层中似乎发生了很多事情;您拥有模型、razor View 、 Controller 以及任何添加的细节,例如 javascript/AngularJS 和 CSS。
当我使用 Web API 而不是 MVC 时,您会如何建议我设置我的层级?是不是和上面一样,只是多了一层?像这样:
- 数据(类库)
- 存储库(类库)
- 服务(类库)
- 网络应用程序接口(interface)
- 演示文稿(HTML + javascript + CSS)
或者所有的HTML页面都要和Web API放在同一个项目中?这对我来说似乎很奇怪,因为我觉得您需要将您的 API 与所有其他问题(例如用户界面)分开。
任何见解都将不胜感激。
最佳答案
这些天我一直在沿着这些路线努力。 Web API 作为数据进出应用程序的网关,与 HTML 完全独立。 现在你有两个选择
- 使用 HTML 页面并使用 AJAX 与 Web API 交互,我能想到的唯一大问题是路由和 url 重写。
- 使用 MVC View ,但作为 HTML 页面,这意味着没有模型类,没有 Controller 方法(除了为 View 服务的方法)。基本上,您使用的只是内置路由,也许还有母版页。
在前端方面,至于后端,Web API 层是旧应用程序中的 WCF 应用程序,因此 Web API 控件是 .svc 文件实现,从那里你' d 有一个用于业务逻辑的类库,一个用于数据访问(SQL/ORM),最后一个用于域对象(跨 web api、业务和数据层共享)。
这就是我倾向于尽可能构建事物的方式。对于将 HTML 与 Web API 一起使用,我倾向于喜欢选项 2,主要是因为它很容易与 VS 集成,如果你真的需要 Razor 的任何东西,你可以方便地使用它。主要是因为您使用 Visual Studio 喜欢而不反对它的结构(从长远来看,它更容易接受)
希望对你有帮助
关于c# - 将 Web API 与 HTML 页面一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727121/