2013-01-06 26 views
5

Tôi đang gửi đối tượng JSON qua mã sau .. Bộ điều khiển trả lại giá trị ở định dạng CSV phải được cung cấp để mở hoặc lưu dưới dạng tệp CSV. Tôi không thể hiểu rằng những gì chính xác mã nên được viết trong thành công: function (kết quả)Làm cách nào để xử lý kiểu trả về FileStream trong bài đăng .ajax?

Link dành cho xuất khẩu

Html.ActionLink("Export", "", "", null, new { @onclick = "return exportData();"}) 

function exportData() { 

var searchViewModel = getExLogSearchModelData(); 
var path = getAbsolutePath("ExclusionLog", "ExportData"); 
$.ajax({ 
    url: path, 
    cache: false, 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'html', 
    type: 'POST', 
    data: JSON.stringify(searchViewModel), 
    success: function (result) { 
    }, 
    error: function (error) { 
     $("#voidcontainer").html("Error"); 
    } 
}); 

}

khiển ActionResult

public ActionResult ExportData(ExclusionLogSearchViewModel postSearchViewModel) 
    { 
     try 
     { 
      IEnumerable<ExclusionLogViewModel> exclusionLogData = null; 
      exclusionLogcData = this._workerService.GetExclusionLogData(postSearchViewModel); 

      return CSVFile(exclusionLogMembershipSyncData.GetStream<ExclusionLogViewModel>(), "ExclusionLogTables.Csv"); 
     } 
     catch (Exception ex) 
     { 
       throw ex; 
     } 
     return null; 
    } 

Bạn có thể xin vui lòng đề nghị làm thế nào để làm điều này?

Trả lời

3

Tôi đã trúng cùng một vấn đề và tôi đã không tìm thấy một cách để tải tập tin sử dụng $.ajax nhưng tôi tìm thấy một thư viện JavaScript tuyệt vời cung cấp hành vi tương tự:

https://github.com/johnculviner/jquery.fileDownload

Bạn chỉ cần gọi một cái gì đó như thế này:

$.fileDownload(path, { 
    httpMethod: 'POST', 
    data: JSON.stringify(searchViewModel), 
    success: function (result) { 
    }, 
    error: function (error) { 
     $("#voidcontainer").html("Error"); 
    } 
}); 

Và hãy nhớ tạo cookie trong bộ điều khiển. Trong src/Common có bộ lọc hành động phù hợp làm điều đó cho bạn.

Các vấn đề liên quan