我有一个ASP.NET WebAPI方法,它返回一个包含有效XML文档的字符串:
public class MessageController : ApiController
{
private readonly MyContextProvider _contextProvider = new MyContextProvider();
[HttpGet]
public string Message()
{
Message m = _contextProvider.Context.Messages.First();
return m.XMLFile;
}
}
我使用jQuery从客户端调用此方法:
$.ajax('http://localhost:16361/service/api/message/message/', {
contentType: 'text/xml',
type: 'GET'
}).done(function (e) { });
' E'包含XML字符串,但这不是我想要的。我想让浏览器处理响应并显示其通常的对话框以保存或打开XML。显然我在这里遗漏了一些东西,但我不确定该怎么办......
答案 0 :(得分:1)
看一下这个问题here:
您可以通过设置邮件内容的内容配置来在WebApi中实现此目的:
[HttpGet]
public HttpResponseMessage Message()
{
Message m = _contextProvider.Context.Messages.First();
var message = Request.CreateResponse(HttpStatusCode.OK, m);
message.Content.Headers.Add("Content-Disposition","attachment; filename=\"some.xml\"");
return message;
}
或强>
[HttpGet]
public HttpResponseMessage Message()
{
Message m = _contextProvider.Context.Messages.First();
var message = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(m, Encoding.UTF8, "application/xml")
};
message.Content.Headers.Add("Content-Disposition","attachment; filename=\"some.xml\"");
return message;
}