我有一个web api方法,它将format作为一个参数,提供返回xml和json.返回的方法返回的数据类型是DataTable.在json格式中,一切看起来都很好但是在xml格式中,数据表的模式和xml节点中的一些其他属性还返回.如何返回仅包含datatable数据的简单xml?另外,我在WebApiConfig中使用QueryStringMapping.
这是WebApiConfig代码
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("format", "json", new MediaTypeHeaderValue("application/json")));
config.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("format", "xml", new MediaTypeHeaderValue("application/xml")));
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
}
Run Code Online (Sandbox Code Playgroud)
这是控制器方法的伪代码
[BasicAuthentication]
[Route("api/{tablename}")]
[HttpGet]
public IHttpActionResult Get(string tablename, string orders = "", int limit = 100)
{
DataTable dt = new DataTable{TableName="resource"};
//... Database connection and getting result
return Ok(new Response{ limit = limit,count=dt.Rows.Count, data =dt });
}
Run Code Online (Sandbox Code Playgroud)
和响应模型
public class Response
{ …Run Code Online (Sandbox Code Playgroud)