ASP.NET MVC Controller FileContent ActionResult通过AJAX调用
发布时间:2020-05-24 02:24:38 所属栏目:asp.Net 来源:互联网
导读:设置: 控制器包含一个方法public ActionResult SaveFile(),它返回一个FileContentResult. 什么工作: 该视图包含一个表单,它提交到此操作.结果是这个对话框: 什么不行: 该视图包含一些javascript来执行AJAX调用到表单将发布的相同的控制器操作.而不是触发
|
设置: 控制器包含一个方法public ActionResult SaveFile(),它返回一个FileContentResult. 什么工作: 该视图包含一个表单,它提交到此操作.结果是这个对话框: 什么不行: 该视图包含一些javascript来执行AJAX调用到表单将发布的相同的控制器操作.而不是触发上述对话框,甚至是AJAX成功函数,响应触发AJAX错误函数,XMLHttpRequest.responseText包含文件响应. 我需要做什么: 使用AJAX对文件进行请求,结果与提交表单时的结果相同.如何使AJAX请求提供提交表单的对话框? 解决方法这是一个快速的例子.这是LukLed正在调用SaveFile的概念,但是不要通过ajax返回文件内容,而是重定向到下载.这是查看代码: <script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
// hide form code here
// upload to server
$('#btnUpload').click(function() {
$.ajax({
type: 'POST',dataType: 'json',url: '<%= Url.Action("SaveFile","Home") %>',success: function(fileId) {
window.location = '<%= Url.Action("DownloadFile","Home") %>?fileId=' + fileId;
},error: function() {
alert('An error occurred uploading data.');
}
});
});
});
</script>
<% using (Html.BeginForm()) { %>
<div>Field 1: <%= Html.TextBox("field1") %></div>
<div>Field 2: <%= Html.TextBox("field2") %></div>
<div>Field 3: <%= Html.TextBox("field3") %></div>
<button id="btnUpload" type="button">Upload</button>
<% } %>
这是控制器代码: [HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult SaveFile(string field1,string field2,string field3)
{
// save the data to the database or where ever
int savedFileId = 1;
// return the saved file id to the browser
return Json(savedFileId);
}
public FileContentResult DownloadFile(int fileId)
{
// load file content from db or file system
string fileContents = "field1,field2,field3";
// convert to byte array
// use a different encoding if needed
var encoding = new System.Text.ASCIIEncoding();
byte[] returnContent = encoding.GetBytes(fileContents);
return File(returnContent,"application/CSV","test.csv");
}
public ActionResult About()
{
return View();
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 我的模型应该在哪里生活? Web层或数据层?
- 为什么每个人都在ASP.NET Webforms中依赖注入是困难的,当Pa
- ASP.NET数据从代码隐藏双向双向绑定
- asp.net-mvc – 如何在asp.net mvc中提交下拉列表
- ASP.NET MVC3(Razor)中的视图中局部变量的简单增量
- asp.net-mvc – DevExpress MVC GridView – 如何获取单元格
- ASP.net Web服务与WCF
- asp.net-mvc-3 – 创建MVC3剃刀助手,如Helper.BeginForm()
- asp.net:控件/页面的页面生命周期顺序与其中的用户contorl
- asp.net – 从MVC视图中的模型访问displayName属性
推荐文章
站长推荐
- asp.net – 默认情况下提供静态文件index.html
- ASP.NET @Register和@Reference
- asp.net-mvc – HttpCache vs Singleton – MVC应
- asp.net-mvc – 我可以在MVC3中的Html.LabelFor中
- asp.net – 设置Html.Hiddenfor的值
- asp.net-mvc – 如何创建安装文件来安装MVC .net
- 如何找出重新启动ASP.NET Web应用程序的原因
- asp.net-core – ASP.Net 5类库中的EntityFramew
- asp.net-mvc – 什么可以导致ViewData.ModelStat
- asp.net-mvc – 为什么HttpContext.Current在asp
热点阅读
