【发布时间】:2018-01-11 12:22:37
【问题描述】:
我有一个这样的控制器
[ResponseType(typeof(List<InboxPatientModel>))]
[Route("~/api/Messages/search")]
public IHttpActionResult GetSearch(string serchTerm = "", string messageFor = "p")
{
try
{
if(messageFor == "p")
{
var inboxMessages = MessageToPatientList.Get(serchTerm);
return Ok(inboxMessages);
}
else
{
var outboxMessages = MessageToDoctorList.Get(serchTerm);
return Ok(outboxMessages);
}
}
catch (Exception ex)
{
//some code for exception handling....
}
}
这里MessageToPatientList.Get和MessageToDoctorList.Get返回不同类型的列表说InboxPatientModel和InboxDoctorModel。
是否可以用[ResponseType(...)]来装饰action,使其可以是动态的并且可以返回不同类型的列表?
【问题讨论】:
-
ResponseType 仅在请求自动 API 描述时由 ApiExplorer 用于文档目的。它对请求的处理没有影响。话虽如此,您可以使用多个 ResponseType 属性,即
[ResponseType(typeof(List<InboxPatientModel>)), ResponseType(typeof(List<InboxDoctorModel>))]。
标签: c# asp.net-mvc asp.net-web-api