#c# #asp.net-mvc
#c# #asp.net-mvc
Вопрос:
У меня есть следующий код для извлечения файла pdf и отображения в представлении (это частичный загрузочный модальный вид). Все хорошо, за исключением случаев, когда PDF-файл пуст или выдается какая-либо ошибка, я вижу только пустой модальный. Кто-нибудь знает, есть ли способ, которым я могу отправить короткое сообщение типа «извините, ошибка!» обратно в представление при возникновении ошибки?
Кроме того, оно должно быть в представлении, а не во всплывающем окне предупреждения.
Частичный просмотр:
<div class="modal-body" id="modal-content">
<object data="@Url.Action( GeneratePDF, MyPDF)"></object>
</div>
Контроллер:
public FileStreamResult GeneratePDF()
{
MemoryStream memStream = SomeService.GetPDFinStream();
if ( memStream.Length <= 0 )
{
// I want to throw a simple error msg back, what to do?
}
else
{
return new FileStreamResult(memStream);
}
}
Комментарии:
1. Перенаправьте его на контроллер ошибок, и оттуда вы можете предоставить пользователю кнопку для перехода на нужную страницу. Таким образом, вы также можете регистрировать ошибки.
Ответ №1:
Используйте TempData
для хранения сообщения об ошибке и в представлении поместите JavaScript, чтобы, если сообщение об ошибке не равно нулю, затем отобразите предупреждение
if ( memStream.Length <= 0 )
{
// I want to throw a simple error msg back, what to do?
TempData["CustomNullError"] = "sorry, error";
}
Просмотр кода
<script type="text/javascript">
$(document).ready(function () {
var msg = '@TempData["CustomNullError"]';
if (msg.length > 1) {
alert(msg);//
// or set error message in label/ span
}
});
</script>
Комментарии:
1. Предупреждающее сообщение не появляется… Я думаю, это может быть связано с тем, что мой частичный просмотр находится внутри модального окна. В любом случае, если я хочу вместо этого показать сообщение на странице. Я пробовал этот способ, но все еще не работает, не могли бы вы помочь? <div class=»модальный-body» id=»general-modal-content»> <div id=»модальная ошибка»>Сообщение об ошибке</div> <div id=»модальный-PDF»> Константы. Действия. Сгенерировать счет, константы. Контроллеры. BillPresentment )» ширина =»100%» высота =»600″></object> </div> </div>
2. <script type=»text/javascript»> $(document).готово(function () { $(‘#modal-Error’).hide(); var msg = ‘@TempData[«CustomNullError»]’; if (msg.length > 1) { оповещение (msg); $(‘#modal-PDF’).hide(); $(‘#modal-Error’).show(); } }); </script>
3. JavaScript должен быть размещен в нижней части основного вида, где отображается Частичный вид.