0

У меня есть метод контроллера, который возвращает ответ для загрузки. Он работает нормально, но когда возникает исключение, пустая страница возвращается на текущую страницу, где запрашивается загрузка.MVC - form upload exception hasling

Также я отправляю данные какой-либо формы, чтобы запросить загрузку.

Вместо этого мне нужно показать сообщение об ошибке как всплывающее окно. Как я могу это сделать?

MVC-контроллер для загрузки pdf. Его возвращаемый pdf-файл для загрузки, но иногда, когда возникает исключение, он возвращает пустую страницу.

[HttpPost] 
    public void Downloadpdf() 
    { 
     try 
     { 
     // Generate pdf 
      Response.Clear(); 
      Response.AddHeader("Content-Type", "application/pdf"); 
      Response.AddHeader("Content-Disposition", "attachment;filename=Newpdf.pdf"); 
      byte[] pdf = ms.ToArray(); 
      Response.OutputStream.Write(pdf, 0, pdf.Length); 
      Response.End(); 

     } 
     catch (Exception ex) 
     { 
      Response.End(); 
     } 
    } 

Как показать всплывающее окно для исключения. И избегайте пустой страницы. Также это одностраничное приложение.

+0

Вы можете перенаправить на другой контроллер, передав объект исключения в качестве модели из блока catch. И с этого контроллера вы можете отобразить соответствующее уведомление, уведомляющее пользователя об ошибке. –

+0

На самом деле мне нужно показать ошибку в всплывающем окне на той же странице, где я запрашиваю (отправьте форму) для загрузки. @Rumit Parakhiya – Purushoth

ответ

1

1) Удалить недействительным и использовать ActionResult

2) Используйте "вернуться View (" YourViewName ");" после выписки

3) В catch добавить строку: ViewBag.Exception = ex;

4) На представлении, где вы вернетесь, тип

@if(ViewBag.Exception == null) 
{ 
} 
else 
{ 
@ViewBag.Exception 
} 

5) Вы хотите показать на всплывающее окно, используйте предупреждение на ту же точку зрения с помощью JavaScript.

Надеюсь, что вопросы удовлетворят вашу проблему.

+0

Его одно приложение страницы, где маршрутизация выполняется в router.js (#tag routing), поэтому я не смог вернуть представление. – Purushoth

0

в вас главная страница, положить IFRAME 0 ширина 0 высота
при нажатии кнопки нажмите скачать, установить IFrame SRC для загрузки действия
если все в порядке, вернуть файл (...)
, если есть некоторые ошибка, вернуться View (...)
и вид шоу в IFRAME, вы можете использовать некоторые JS для управления главной страницы в IFrame странице всплывать

главной страницы

function pop(){....} 

iframe стр.

$(function(){ window.parent.pop(); });