2016-03-22 25 views
0

Aşağıdaki verilen kodlar, asp net (asp net) yönlendirme ve ön uç sahip olan saf asp.net (aspx) uygulaması ile kullandığımda, benim için mükemmel çalışır. Şimdi benim senaryo, mvc ve asp.net (aspx sayfa) karışık mod uygulaması var, bu yüzden ben çalışmayan mvc denetleyici yönteminden çağırarak dosya indirmek için aynı sayfayı (aspx) kullanıyorum. Bu kodun yazıldığı yerdeki aspx sayfasına yönlendiren denetleyicideki void yöntemini çağırmak için ajax çağrısı yazdım, geri kalanlar yukarıda belirtildiği gibi. İşte Aspx ve MVC karışık modda dosya indirme

**string path = HttpContext.Current.Server.MapPath("~/Reporting/OnePager.xlsm"); 
       string id = Request.Params["id"]; 
       HttpResponse response = this.Response; 
       response.Buffer = true; 
       response.Clear(); 
       response.ContentType = "application/vnd.ms-excel"; 
       response.AddHeader("content-disposition", "attachment; filename=" + id + "-One-Pager.xlsm"); 
       response.WriteFile(path); 
       response.Flush(); 
       response.End();** 

ajax çağrısı

if (arrselected.length > 0) { 
       $.ajax({ 
        type: 'POST', 
        url: '@Url.Action("ExportProjectOnePager", "controller")', 
        dataType: 'json', 
        contentType: "application/json; charset=utf-8", 
        data: JSON.stringify({ ID: arrselected[0]}), 
        success: function (output) { 
         if (output.notValid.length != arrselected.length) { 
          alert("success"); 
         } 

         if (output.notValid != "") { 
          alert("You do not have permission to see this IDs :" + output.notValid); 
         } 
        } 
       }); 
      } 

ve burada Sen denetleyici yönteminde aynı yapabileceği

public void ExportProjectOnePager(string ID) 
     { 
      string _Path = @"~/Reporting/ProjectOnePager.aspx?id=" + ID; 
      Response.Redirect(_Path); 
     } 
+0

Eğer Ajax çağrı gösterebilir tipi geçersizdir dönmek dönmek için denetleyici yöntemini değiştirebilir? Ayrıca, yönteminiz geçersizse başka bir görünüme veya sayfaya nasıl yönlendiriliyorsunuz? –

+0

Hızlı yanıtınız ve ilginiz için teşekkürler, aşağıda verilen mvc görünümünden ajax çağrısıdır .. –

+0

Güncelleştirilmiş soru –

cevap

0

geçersiz kontrolör yöntemini, ancak FileResult dönmek için değiştirmek zorunda veya FileStreamResult, ve kodu orada kopyalayın.

Ayrıca RedirectResult ve kod kullanımı içindeki Redirect ('aspx sayfası') yerine Response.Redirect dönmek ve