c# - 将 Web API 与 HTML 页面一起使用

标签 c# html asp.net-web-api n-tier-architecture

我已经成功使用 ASP.Net MVC(使用 Razor 语法)一年多了,我想转向 Web API。

对于 MVC,我通常会按如下方式设置我的 n 层架构(为了便于解释而进行了简化):

  1. 数据(类库)
  2. 存储库(类库)
  3. 服务(类库)
  4. 演示文稿(MVC)

我开始不喜欢的是,在 Presenation 层中似乎发生了很多事情;您拥有模型、razor View 、 Controller 以及任何添加的细节,例如 javascript/AngularJS 和 CSS。

当我使用 Web API 而不是 MVC 时,您会如何建议我设置我的层级?是不是和上面一样,只是多了一层?像这样:

  1. 数据(类库)
  2. 存储库(类库)
  3. 服务(类库)
  4. 网络应用程序接口(interface)
  5. 演示文稿(HTML + javascript + CSS)

或者所有的HTML页面都要和Web API放在同一个项目中?这对我来说似乎很奇怪,因为我觉得您需要将您的 API 与所有其他问题(例如用户界面)分开。

任何见解都将不胜感激。

最佳答案

这些天我一直在沿着这些路线努力。 Web API 作为数据进出应用程序的网关,与 HTML 完全独立。 现在你有两个选择

  1. 使用 HTML 页面并使用 AJAX 与 Web API 交互,我能想到的唯一大问题是路由和 url 重写。
  2. 使用 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/

相关文章:

c# - 类设计指南中的算术运算符和方法

c# - 用于分隔函数中参数的正则表达式

c# - MvcMailer 使用Rhino Mock 进行单元测试,如何进行?

html - 是否可以使绝对定位的 div 出现在固定元素上方?

html - 选择下一个兄弟,仅当显示此跨度时

Android Retrofit 2.1.0 Response.body() 为 null,状态代码为 404

c# - 在 Swagger 中使用字典式数据类型

c# - 简洁的 LINQ to XML 查询

javascript - Angular Ui-Bootstrap 在页面加载时折叠闪烁

asp.net-web-api - 如何编写 REST API 以使用 ASp.net Web Api 通过 Twilio Number 接收短信