使用属性路由忽略XmlFormatter MediaTypes的删除

时间:2016-08-11 14:35:45

标签: c# asp.net-web-api2

我有一个带有几个控制器的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。

我错过了什么?

0 个答案:

没有答案