【发布时间】:2012-11-05 12:41:20
【问题描述】:
给定控制器中的方法:
public class CustomerController : ApiController
{
[HttpGet]
public CustomerDto GetById([FromUri] int id)
{
.
.
return customerDto
}
}
有没有办法用属性指定支持的媒体类型?例如,CustomerDto 是一个复杂的类,只会使用 JSON (application/json) 而不是 XML (application/xml) 进行序列化,但也可以接受 PDF (application/pdf)。有没有这样的:
[HttpGet(Accepts.JSON, Accepts.PDF)]
or
[HttpGet][AcceptJSON][AcceptXML]
or
[HttpGet][Accept("application/json")][Accept("application/pdf")]
如果传入的请求不受支持,则可能会返回不支持的异常/状态。
注意 - 我不想像在全局范围内那样删除所有的 XML 序列化。相反,我想定义每条路线接受的内容。
使用 - ASP.NET WebAPI RC 1(需要升级)+ 自托管
【问题讨论】:
标签: asp.net-web-api asp.net-web-api-routing media-type