2013-12-03 6 views
1

Мне нужно найти способ экспортировать данные в файл csv без последующей записи с помощью некоторого сценария jquery.экспорт в csv без обратной передачи

Я пытаюсь сделать это с помощью Ajax, ниже код:

public ActionResult ExportDealerData(int shopId, int? siteId, int dealerId, DateTime? frmDate, DateTime? toDate, string fileName) 
{ 
    string csvexport = ExportToCsv 
     .CreateInstance(shopinstance, null, null, shopInstanceDates, true) 
     .ReturnCsvFile(); 

    return File(new UTF8Encoding().GetBytes(csvexport), "csv", "test.csv"); 
} 

JQuery:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: oAxn.ds, 
    data: JSON.stringify(oAxn.p(graphsDrpDwn)), 
    success: function (graphData) { 
     window.location = "/stealth/ExportDealerData?file=" + "test.csv"; 
    } 
} 


<asp:LinkButton ID="lnkMetricExport" CssClass="exportCsv composite" OnClientClick="YC.ajaxCall('dealerexport','dealerTab','','','');return false;" runat="server" Text="Export CSV" /> 

это выполняется без каких-либо ошибок, однако файл не все становится создано. Он даже не показывает, что в диалоговом окне сохранения файла.

может кто-нибудь advsie, что я делаю неправильно ??

+0

Вы отметили это как ASP.NET MVC, но похоже, что вы используете WebForms. Можешь подтвердить? –

+0

Richard Ev - это actionresult, конечно MVC? – Paddy

+0

его фактически оба. наш html не является бритвой, но мы получаем некоторые бит и куски данных от контроллера, используя ajax-вызовы – mmssaann

ответ

0

Это не способ сделать это - AJAX вызывает ожидание HTML, XML или JSON - вы возвращаете текстовый файл.

Вам вообще не нужен звонок AJAX. Просто сделайте свое действие «GET» и укажите ссылку на это действие на своей странице. Если вы не хотите открывать новую страницу, вы просто добавляете соответствующие заголовки, чтобы заставить ее загружаться.

MVC не имеет идеи обратной передачи - запрос GET - это еще один запрос.

+0

спасибо за ответ. Скажите, пожалуйста, какую ссылку нужно предоставить этому методу действий? может у дать мне пример PLS? – mmssaann

+0

Я не могу использовать Html.Actionlink, потому что страница не является бритвой, это страница с именем asp.net, также действие ожидает некоторых параметров? – mmssaann

+0

Тогда вам просто нужно написать код для вывода соответствующего URL-адреса. Это будет что-то вроде: www.yoursite.com/ControllerName/ExportDealerData/?siteID=1....etc – Paddy

Смежные вопросы