Страница неактивна после нажатия на ссылку для скачивания - PullRequest
1 голос
/ 19 августа 2010

У меня есть несколько кнопок ссылок, каждая из которых открывает диалоговое окно сохранения, чтобы позволить пользователям сохранять файл на локальном компьютере. Но после щелчка по любой ссылке страница перестает работать (ничего не работает), и страница должна быть обновлена.

Так нужно ли принудительно обновлять после завершения загрузки, или оно должно что-то делать с обратной передачей?

{

        StringCollection strValuesToSearch = new StringCollection();

        strValuesToSearch.Add("findword");

        string stringToReplace;

        stringToReplace = TextBox1.Text;




        using (StreamReader reader = new StreamReader(Server.MapPath("~/test.txt")))
        {
            string result = reader.ReadToEnd();





            foreach (string s in strValuesToSearch)
            {

                if (result.Contains(s))

                    result = result.Replace(s, stringToReplace);




                Response.Clear();
                Response.AppendHeader("content-disposition", "attachment; filename=super.txt");
                Response.ContentType = "text/plain";
                UTF8Encoding encoding = new UTF8Encoding();
                Response.BinaryWrite(encoding.GetBytes(result));
                Response.Flush();
                Response.End();

1 Ответ

1 голос
/ 19 августа 2010

В отсутствие кода на стороне клиента это просто дикое предположение о том, что вызывает проблему:

  1. Пользователь нажимает кнопку ссылки
  2. JS инициирует get или post ajax-вызов на сервер, отправляя некоторые данные
  3. Сервер отправляет заголовок content-disposition, за которым следуют данные файла
  4. ajax-процесс ожидает, что какой-то другой заголовок скажет, что действие завершено, и этот заголовок никогда не приходит, поэтому он ожидает бесконечной блокировки пользовательского интерфейса.
...