下载xlsx作为httpresponsemessage

时间:2016-12-07 02:23:09

标签: c# angularjs excel

我正在尝试下载一个xlsx扩展文件,将其作为httpresponsemessage包含在内。该文件不会出现下载,但Chrome中的XHR请求似乎包含数据。

public HttpResponseMessage GetExcelFile(string csvdata)
{
      var result = new HttpResponseMessage(HttpStatusCode.OK);

     System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
     MemoryStream memStream = new MemoryStream(encoding.GetBytes(csvdata));

      result.Content = new ByteArrayContent(encoding.GetBytes(csvdata));

      result.Content.Headers.ContentType = new    MediaTypeHeaderValue("application/octet-stream");

       result.Content.Headers.ContentDisposition = new        ContentDispositionHeaderValue("attachment"); 

       result.Content.Headers.ContentDisposition.FileName = "Data.xlsx";

       return result;

}

这是将httpresponsemessage抛出到angularjs UI的api调用。 有什么建议让这个工作吗?

1 个答案:

答案 0 :(得分:0)

希望您使用web API get方法在ValuesController.cs类中返回HttpResponseMessage。 (// GET: api/Values

假设按下按钮时点击ng-click, 在按钮元素中添加ng-click="TakeIT()"作为属性。

在角度控制器中,将函数绑定到$ scope as,



$scope.TakeIT= function () {                        
                    window.location = 'api/Values';
                };