在动作方法调用后显示视图中的消息

时间:2015-02-23 16:29:41

标签: javascript c# jquery asp.net-mvc

我有一个用户可以下载报告的视图。在下载报告之前,可以选择过滤器。当一个人选择过滤器并尝试下载报告时,如果报告没有数据,我希望操作方法能够产生如下客户端消息:

“报告中没有数据”

现在,我正在尝试停止方法调用,并调用return redirectToAction('noDataActionMethod'),这是一个局部视图。

但除此之外我不知道从哪里开始。理想的情况是能够在部分视图加载时调用一些javascript,但是做研究表明它不可能吗?

另外,我不想打开一个全新的视图。我只想要一个局部视图,我可以淡入5秒然后淡出。

1 个答案:

答案 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>
}