ajax файл экспорта mvc3 - PullRequest
       6

ajax файл экспорта mvc3

2 голосов
/ 09 февраля 2012

Я написал действие, позволяющее пользователю экспортировать текст в виде TXT-файла.Кнопка в представлении вызывает это действие через ajax.Я использовал ajax, потому что я хочу, чтобы пользователь оставался на той же странице, пока он загружает текстовый файл.При нажатии кнопки действие выполняется.Но это не работает, как ожидалось.Вызов ajax вызывает обновление страницы, и всплывающее окно загрузки файла не отображается.

Может кто-нибудь помочь мне исправить это.

Вот фрагменты кода: Просмотр

<button id="exportButton">
<span>Export to Text</span>

@Html.HiddenFor(m => m.VersionId)
<input type="hidden" id="exportUrl" value='@Url.Content("~/LegalAgreement/_Export") ' />

<script type="text/javascript">

$(document).ready(function () {

    $("#exportButton").click(function () {

        $.ajax({
            url: $('#exportUrl').val(),
            type: 'post',
            cache: false,
            data:
        {
            id: $('#VersionId').val()
        },
            success: function () { return false; }
        }); //end ajax   

    });


});

Контроллер

 public ActionResult _Export(int id)
    {
       Response.AddHeader("content-disposition", "attachment; filename=fileName.txt");
        Response.ContentType = "application/octet-stream";

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        byte[] extractedData = encoding.GetBytes("the text to be exported");

        return File(extractedData, "application/octet-stream");           
    }

РЕШЕНИЕ

Спасибо за все ответы!

Я сделалНе нужно использовать AJAX.Это код, который работает как ожидалось:

Вид

 <a id="exportButton" href='@Url.Action("_Export",new {id = Model.VersionId})'>
        <span>Export to Text</span>
 </a> 

Контроллер

 public ActionResult _Export(int id)
    {

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();          
        byte[] extractedData = encoding.GetBytes("some text");

        return File(extractedData, "application/octet-stream", "fileName.txt");

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...