我有一个带有几个控制器的web api,它们使用基于约定的路由。 但是,对于一个控制器,我想使用属性路由,但只要将RoutePrefix和Route属性放在我的控制器类和方法上,Chrome就会返回XML而不是JSON,以及消息
此XML文件似乎没有任何关联的样式信息 用它。文档树如下所示。
控制器:
[RoutePrefix("WebVerslaggeving")]
public class WebVerslaggevingController : ApiController
{
[Route("GetProjectVoorwaardeDocumenten/{projectId:int}/{webVoorwaardeId:int}")]
public IHttpActionResult GetProjectVoorwaardeDocumenten(int projectId, int webVoorwaardeId)
{
var ftpPath = string.Format(@"{0}/Voorwaarden/{1}/", projectId, webVoorwaardeId);
var fileList = GetFilesFromFolder($@"ftp://{_ftpServer}/{ftpPath}", recursively: true);
return Ok(fileList);
}
}
在我的WebApiConfig中,我包括以下几行:
config.MapHttpAttributeRoutes();
config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
但显然这不适用于属性路由。一旦删除属性,就会返回JSON。
我错过了什么?