我有一个用户可以下载报告的视图。在下载报告之前,可以选择过滤器。当一个人选择过滤器并尝试下载报告时,如果报告没有数据,我希望操作方法能够产生如下客户端消息:
“报告中没有数据”
现在,我正在尝试停止方法调用,并调用return redirectToAction('noDataActionMethod')
,这是一个局部视图。
但除此之外我不知道从哪里开始。理想的情况是能够在部分视图加载时调用一些javascript,但是做研究表明它不可能吗?
另外,我不想打开一个全新的视图。我只想要一个局部视图,我可以淡入5秒然后淡出。
答案 0 :(得分:1)
您可以将消息放入ViewBag中,然后在客户端以这种方式显示。你不需要局部视图,只需检查服务器端是否包含你的消息然后如果是这样就调用JS函数来显示一个包含你信息的div。
answer here可能会有所帮助,您只需使用类似
的内容ViewBag.NoDataMessage = "some message"; //in the controller
然后在我链接的答案中采取方法。
像这样的东西
@if (!string.IsNullOrWhiteSpace(ViewBag.NoDataMessage))
{
<script type="text/javascript">
$('#MessageDiv').attr("innerHtml",'@ViewBag.NoDataMessage');
//show your div
//start timer to hide the div
</script>
}