asp.net-mvc - 如何编写一个 MVC3/4 应用程序,既可以作为 Web API 又可以作为该 API 的 UI?

标签 asp.net-mvc asp.net-mvc-3 rest asp.net-web-api

我的标题很好地总结了这一点。我的第一个虽然它提供了一些数据格式,一个是 HTML,我可以分别使用 Razor View 引擎和 MVC3 Controller 操作提供和使用。然后,也许可以通过自定义 View 引擎提供其他数据格式。很久以前,除了非常基本的 Web 服务之外,我从未真正在这个领域工作过。我在这里有哪些选择?我看到链接到 MVC4 的这个 Web API 是什么?

注意 :我的主要 HTML 应用程序不需要直接从 API 运行。我想首先编写 API,由框架 HTML 客户端的要求驱动,具有非常基本的 UI,一旦 API 被固定下来,然后使用与 API 相同的服务编写一个功能齐全的 UI 客户端,但绕过实际的数据解析和表示 API 组件。

最佳答案

第一次讨论 Web API 时,我也有同样的想法。简而言之,Web API 是 MS .NET Web Stack 的新产品,它构建在 WCF、OData 和 MVC 之上,提供了创建 RESTful Web API 的统一方法。这方面的资源很多,所以去谷歌一下。

现在进入问题..

问题是您当然可以让 Web API 返回 HTML、JSON、XML 等 - 但这里缺少的部分是 Razor/ASPX/insertviewenginehere 提供的 View /模板。这不是“API”的真正工作。

您当然可以编写客户端代码来调用您的 Web API 并使用大量可用插件执行模板/UI 客户端。

我很确定 Web API 不能像 ASP.NET MVC Web 应用程序那样返回模板化的 HTML。

因此,如果您想“重用”应用程序的某些部分(存储库、域等),最好将调用包装在各种外观/服务层中,并使您的 Web API 和单独的 ASP。 NET MVC Web 应用程序调用它以减少代码。

您最终应该得到的是一个 ASP.NET MVC Web 应用程序,它调用您的域并构建模板化的 HTML,以及一个 ASP.NET Web API 应用程序,它调用您的域并返回各种资源(JSON、XML 等)。

如果您有一个结构良好的应用程序,那么这种抽象形式应该不成问题。

关于asp.net-mvc - 如何编写一个 MVC3/4 应用程序,既可以作为 Web API 又可以作为该 API 的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9987662/

相关文章:

c# - 在声明 ASP.NET 之前不能使用局部变量

c# - 如何在操作过滤器中记录所有查询参数?

asp.net-mvc - MVCScaffolding 入门

api - 在 CORS 请求的 POST 之前使用 OPTION 请求的背后原因是什么?

python - Flask 上的 RESTful API。如何将目录上传到服务器

javascript - 更新多选查找列 REST

ASP.net 身份教程

asp.net - 如何在 Quartz.Net 中处理应用程序关闭

html - Rotativa 生成的 PDF 无法正确呈现 - 分页符/元素中断

c# - 在 MVC4 中找不到 IIS 7.5 ActionLink 资源