用C#(Umbraco)创建一个可下载的文件

时间:2017-10-03 08:58:24

标签: c# asp.net-web-api download httpcontext

对于最近的一个项目,我们正在尝试在C#Umbraco中创建一个可下载的文件,但我似乎无法让它工作。对于下载我正在使用System.Web.HttpContext.Current.Response。在Umbraco CMS中按下按钮后调用该函数。该函数被调用,但不响应下载。该函数在继承自System.Web.Http.ApiController。

的类中实现

我知道这个问题与其他一些问题相符,但我尝试了不同的解决方案,我觉得我忽视了一些问题。

源代码:

Foo<float> foo(newfunction);
float result = foo.bar();

2 个答案:

答案 0 :(得分:0)

您将方法设置为void,它应该返回结果

public ActionResult Add(FeedbackRequest feedback)
{   
    string filepath = "some filepath";
    byte[] filedata = File.ReadAllBytes(filepath);
    string contentType = MimeMapping.GetMimeMapping(filepath);

    var contentInfo = new System.Net.Mime.ContentDisposition
    {
        FileName = "download filename",
        Inline = false,//ask browser for download prompt
    };

    Response.AppendHeader("Content-Disposition", contentInfo.ToString());

    return File(filedata, contentType);
}

答案 1 :(得分:0)

问题是我的js。我有:

            $http.get('/someurl/Export').             
             success(function (data) { 
                //console.log(data); 
                $scope.importOutput = data; 
        });

修复是:

window.open('/someurl/Export', '_blank'); 

感谢所有答案。我认为js很好,因为它正在处理呼叫,但似乎不是。