Asp.net web api “另存为…”在IE8中不起作用

Asp.net web api “另存为…”在IE8中不起作用,asp.net-web-api,Asp.net Web Api,我的intranet应用程序的部分功能是,用户需要查看已生成的一些XML。打开一个新的浏览器选项卡,WebAPI控制器流式传输XML 这很好,问题是当用户单击“另存为…”时,什么也没发生 如果我在服务器上放置一个静态xml文件,请浏览到它并单击另存为。。。那么这就行了;所以我不认为这是由组策略或桌面构建错误引起的。这在合适的web浏览器中也可以正常工作 返回xml的代码 return new HttpResponseMessage(HttpStatusCode.OK) { Content

我的intranet应用程序的部分功能是,用户需要查看已生成的一些XML。打开一个新的浏览器选项卡,WebAPI控制器流式传输XML

这很好,问题是当用户单击“另存为…”时,什么也没发生

如果我在服务器上放置一个静态xml文件,请浏览到它并单击另存为。。。那么这就行了;所以我不认为这是由组策略或桌面构建错误引起的。这在合适的web浏览器中也可以正常工作

返回xml的代码

return new HttpResponseMessage(HttpStatusCode.OK)
{
    Content = new StringContent(fpml, Encoding.UTF8, "text/xml"),
};

如果你欺骗IE认为它有一个文件,而不是动态内容,那么另存为。。。该功能将按预期工作

这可以通过简单地在URL中添加一个文件名来实现,即

而不是

http://myhost/myapp/api/getFpmlApi/?TradeId=234234
使用

http://myhost/myapp/api/getFpmlApi/Fpml.xml?TradeId=234234