asp.net-mvc - 针对 API Controller 创建 View ?

标签 asp.net-mvc razor asp.net-mvc-views asp.net-apicontroller

我需要创建一个网站,其中的一些页面应该可以通过 API 从外部客户端访问,但我仍然想制作常规的 MVC Razor View 来检索、显示和操作相同的数据。

实现此目标的最佳方法是什么?

更新

API 必须公开的只是数据操作。

对于网页,我仍然希望从 razor chtml View 中受益,我不希望使用冗余的 jQ 或 JS 或使用数据的 data- 属性污染我的 View 。

最佳答案

只需用您想要的页面创建一个 MVC 项目,然后创建 ApiController(来自 Web API 框架)作为 RESTful 端点。您可以对 View 进行编程,以将 API 操作中的数据作为 JSON 对象检索,并使用 javascript 使用它们。其他人可以执行相同的 API 操作并以其他方式使用数据。

如果你想从 WebApi 开始,并基于其他人可以通过该 API 访问的相同数据构建基本 View ,你可以将你的 WebApi Controller 注入(inject)你的普通 MVC Controller ,并调用它们的方法来获取数据您需要构建您的 ViewModel。只要您的 API Controller 不需要做任何“开箱即用”的事情,比如直接检查 Request 对象,这应该就可以正常工作。

一个更健壮的方法是创建一个“管理器”层来处理您的应用程序的所有业务逻辑,然后让您的 ApiControllers 只是围绕调用它们各自的管理器类的薄包装器。这会增加一点维护成本,但会更好地遵守单一职责原则。

关于asp.net-mvc - 针对 API Controller 创建 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532496/

相关文章:

javascript - 更改本地网址

c# - 在数据表的特定列下添加一行

c# - 显示进度条,直到 Webgrid 完全加载并分页到 MVC 中 Webgrid 中的下一页或上一页

c# - 如何在mvc中部分缓存用户详细信息

c# - 合并两个数据库表的 LINQ 代码?

asp.net-mvc - 重用 MVC View 来显示数据和编辑数据

asp.net-mvc - ASP.NET MVC & Windsor.CaSTLe : working with HttpContext-dependent services

asp.net-mvc-2 - 带有数组/列表的 ASP.NET MVC 2 模型

c# - 声明和使用字符串时出错

c# - 将 Rich Cards 数据添加到我的 dotnet 应用程序会导致其崩溃