部分视图中的javascript未被触发

时间:2017-06-03 14:01:16

标签: javascript c# asp.net model-view-controller

我的javascript进入部分视图时遇到了一些挑战。任何帮助将受到高度赞赏 这是我的代码:

这是部分View的控制器代码。 (来自名为searchController的控制器)

 public PartialViewResult PdfPartialView()
    {
        return PartialView();
    }

这是打开局部视图的代码

 @Ajax.ActionLink("View pdf", "PdfPartialView", new AjaxOptions { UpdateTargetId = "pdfContainer" })

这是部分视图代码:

 @model dynamic
<h4>Partial View That display PDF....</h4><br/>
<embed src="C:/Users/ionyejekwe/Documents/Visual Studio 2015/Projects/OnlineSearchLagos/OnlineSearchLagos/assets/img/gtb.pdf" width="1300" height="600" type="application/pdf"></embed>



<script>
    $(document).ready(function () {
        //parent.document.location.reload();
        alert('hello');
        // Handler for .ready() called.
        window.setTimeout(function () {
            location.href = "https://www.google.co.in";
        }, 5000);
    });
</script>

没有触发javascript代码。 请问我该怎么做?

2 个答案:

答案 0 :(得分:0)

只需从正在加载部分视图的部分视图中移动脚本部分。

答案 1 :(得分:0)

根据您提供的信息,可能是因为您的脚本位于$(document).ready()内。

您在此处所做的是将Ajax调用绑定到ActionLink。完成的Ajax调用不会为document触发单独的就绪事件,因此脚本不会以这种方式执行。

你能做的就是定义一个自我调用函数;

<script>
    (function(){
        //parent.document.location.reload();
        alert('hello');
        // Handler for .ready() called.
        window.setTimeout(function () {
            location.href = "https://www.google.co.in";
        }, 5000);
   })();
</script>

或者,根据脚本的用途,将其放在函数中并将其绑定到Ajax调用的OnSuccess事件。