【发布时间】:2012-08-04 19:07:16
【问题描述】:
我正在阅读一个在线项目的需求。这是关于 asp.net Web API 的。要求是一个 api 方法 /ui/echo/,它回显作为参数传递给它的任何字符串,当调用该参数时,将响应 UI HTML 部分 <b>Put echo string here</b>。
我在互联网上了解到RazorMediaTypeFormatter。 web api还有其他方法可以返回部分视图吗?
【问题讨论】:
-
强制您使用 ApiController 返回部分视图的设计约束是什么?为什么不使用用于返回部分视图的标准站点控制器。 ApiControllers 用于以 xml 或 json 格式返回数据的 RESTful API。
-
从安全角度来看,这可能很危险,除非您使用 AntiXSS 之类的东西对参数进行编码。否则,恶意用户可以发送 Javascript、IFRAME、对象标签等,这些内容将被注入呈现给用户的 HTML。
-
这是一个样本要求。工作应用程序肯定会从其他来源获取数据。问题是从 web api 返回一个部分。
-
因此,更具体地说,您希望获取使用 Razor 编写的局部视图,并将呈现的 HTML 作为对 REST API 的请求的结果返回。那是对的吗?那么问题是如何从 Razor 视图中获取生成的 HTML,还是如何在 REST API 中返回 HTML,或两者兼而有之?
-
是的,它是正确的。问题是如何使用 asp.net web api 从剃刀视图中获取结果。是 TypeFormatter 唯一的选项还是有什么可以做的?更具体地说,可以指定视图名称。我知道这很奇怪,对于这样的要求,我会去普通的 mvc 控制器,但正如我所说的,这不是我的要求,而是来自 odesk 上的在线工作
标签: asp.net-mvc-4 partial-views asp.net-web-api