Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC ajax不下载文件_C#_Jquery_Ajax_Asp.net Mvc_C# 4.0 - Fatal编程技术网

C# MVC ajax不下载文件

C# MVC ajax不下载文件,c#,jquery,ajax,asp.net-mvc,c#-4.0,C#,Jquery,Ajax,Asp.net Mvc,C# 4.0,这是调用控制器的ajax调用 @using(Html.BeginForm("ExportData", "ViewData", FormMethod.Post, new { id = "myform", name = "myform" })) { <button type = "submit"> Export Raw Policy </button> } <div id = "divProcessing"&

这是调用控制器的ajax调用

 @using(Html.BeginForm("ExportData", "ViewData", FormMethod.Post,
     new {
         id = "myform", name = "myform"
     })) {


     <button type = "submit"> Export Raw Policy </button>
 }


 <div id = "divProcessing"> <img src = ~/assets/layouts/layout3/img/loading-spinner-blue.gif" > </p> </div>


 @section Scripts {
     @Scripts.Render("~/bundles/jqueryval")

     <script type = "text/javascript" >

         $(document)
         .ready(function() {

             // Hide the "busy" Gif at load:
             $("#divProcessing").hide();

             // Handle the form submit event, and make the Ajax request:
             $("#myform")
                 .on("submit",
                     function(event) {
                         event.preventDefault();

                         // Show the "busy" Gif:
                         $("#divProcessing").show();
                         var url = $(this).attr("action");
                         var formData = $(this).serialize();
                         $.ajax({
                             url: url,
                             type: "POST",
                             data: formData,
                             dataType: "json",
                             contentType: 'application/json; charset=utf-8',
                             success: function(resp) {

                                 // Hide the "busy" gif:
                                 $("#divProcessing").hide();

                                 // Do something useful with the data:
                                 $("<h3></h3>")
                                     .appendTo("#divResult");
                             }
                         })
                     });
         }); </script>
 }
上面的代码正在进行ajax调用并调用控制器。控制器正在将数据表下载到excel中

如果我在没有ajax调用的情况下调用控制器,那么它将下载excel文件,但当我进行ajax调用时,它不会下载excel文件

代码正在调用正确的控制器和操作,但没有下载文件

有人能告诉我这里出了什么问题吗。没有ajax,它工作得很好

任何帮助都将不胜感激


提前感谢。

如果您将url返回到资源,将该url附加到下载链接并触发单击以开始下载,那么在ajax调用中重定向就再好不过了

从c#返回链接

在成功函数中创建链接

 success: function(resp) {
  $('body').append('<a  class="hidden-download" href="'+resp+'" download>hidden<a>').trigger('click').hide();//append it to the body, trigger the click then hide/remove the link
成功:功能(resp){
$('body').append('hidden').trigger('click').hide();//将其附加到正文中,触发单击,然后隐藏/删除链接

如果您将url返回到资源,将该url附加到下载链接并触发单击以开始下载,那么在ajax调用中重定向就再好不过了

从c#返回链接

在成功函数中创建链接

 success: function(resp) {
  $('body').append('<a  class="hidden-download" href="'+resp+'" download>hidden<a>').trigger('click').hide();//append it to the body, trigger the click then hide/remove the link
成功:功能(resp){
$('body').append('hidden').trigger('click').hide();//将其附加到正文中,触发单击,然后隐藏/删除链接

数据类型:您希望从服务器返回的数据类型。
在声明中声明了仅删除它。是的,我尝试了删除它,但仍然不起作用。我搜索了一点,正如@madalin所说,您无法使用ajax。ajax不允许您将文件下载到计算机。
数据类型:可以删除的数据类型您正在等待服务器的回复。
在声明中声明,只需删除它。是的,我尝试删除它,但仍然不起作用。我搜索了一点,正如@madalin所说,您无法使用ajax。ajax不允许您将文件下载到您的计算机。问题是我没有任何下载链接。我正在创建一个数据表并传递将其导出到excel函数,该函数正在下载文件。因此,我应该将datatable从controller传递到ajax success,然后我应该将该datatable传递回controller以调用导出到excel方法?据我所知,ExportToExcel正在使用datatable创建一个页面,使用生成页面的url我不能在HttpContext.Current.Response.create a route to ExportToExcel在ExportDatasorry中返回该路由我对mvc不熟悉创建路由是什么意思?问题是我没有任何下载链接。我正在创建一个数据表并将其传递给正在下载文件的excel函数。因此我应该传递数据表e从controller到ajax成功,然后我应该将该数据表传递回controller以调用导出到excel方法?据我所知,ExportToExcel正在使用数据表创建页面,请使用生成页面的url。我在HttpContext.Current.Response中找不到任何url。创建到ExportToExcel的路由返回该路由ExportDatasorry我是mvc新手,创建路由是什么意思?
return LinkToAction("Index");// don't know the syntax here sorry
 success: function(resp) {
  $('body').append('<a  class="hidden-download" href="'+resp+'" download>hidden<a>').trigger('click').hide();//append it to the body, trigger the click then hide/remove the link