Yas*_*ser 14 jquery asp.net-mvc-4 asp.net-web-api
我是使用ASP.NET MVC 4和Web Api的新手.
我想允许用户下载一个文件,这个文件我将在服务器端创建.为了创建文件,我设法获得以下代码
[ActionName("Export")]
public HttpResponseMessage PostExportData(SomeModel model)
{
string csv = _service.GetData(model);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StringContent(csv);
//a text file is actually an octet-stream (pdf, etc)
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
//we used attachment to force download
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
result.Content.Headers.ContentDisposition.FileName = "file.csv";
return result;
}
Run Code Online (Sandbox Code Playgroud)
如何使用JQUERY来调用这个WEB API方法?
但是我不知道如何使用jquery调用这个web api并让它返回一个文件,下载任何文件时通常会得到"另存为/打开"选项.
有人可以帮助我并指导我如何拨打电话并下载文件.谢谢.
您可以在要使用jquery的视图中执行类似的操作.我假设控制器的名称是ExportController.您还必须分解模型变量,或者HttpResponseMessage PostExportData(SomeModel model)
通过其他方式收集模型.
HTML:
<a class="export">export</a>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
<script>
$('a.export').click(function(e) {
e.preventDefault(); //stop the browser from following
window.location.href = '@Url.Action('Export', 'ExportController', new { property = model.property, property = model.property2 })';
});
</script>
Run Code Online (Sandbox Code Playgroud)
使用 POST
function UpdateForm(modelObject) {
if ($('#hidden-form').length < 1)
{
$('<form>').attr({
method: 'POST',
id: 'hidden-form',
action: '@Url.Action('Export', 'Export')'
}).appendTo('body');
}
$('#hidden-form').html('');
for(var propertyName in modelObject) {
$('<input>').attr({
type: 'hidden',
id: propertyName,
name: propertyName,
value: modelObject[propertyName]
}).appendTo('#hidden-form');
}
}
$('a.export').click(function(e) {
e.preventDefault();
var modelObject = { property1 : "property1" };
UpdateForm(modelObject);
$('#hidden-form').submit();
});
Run Code Online (Sandbox Code Playgroud)
然后你可以#hidden-form通过js 发布,这将触发文件下载
更新:这是一个完整的发布示例,它没有检查拼写错误等所以调试任何小错误.
| 归档时间: |
|
| 查看次数: |
21709 次 |
| 最近记录: |