如果jquery ajax调用部分视图,则不加载脚本

时间:2013-01-09 08:57:50

标签: .net asp.net-mvc jquery

<。>在.Net MVC 3中我尝试运行脚本..脚本处于局部视图中。如果我用Html.RenderAction调用partial它可以工作,但是如果我通过jquery ajax在页面中调用局部视图则不起作用。

部分视图

   <script type="text/javascript">
    document.write("<script src='http://ad.reklamport.com/rpgetad.ashx?tt=t_iddaa_habersayfalari_mac_detay_300x250&ciid=&rnd=" + Math.random() % 99999999 + "'></" + "script>");            
</script> 

查看

有效..

<html>
    <head>        

    </head>
    <body>        
        @{Html.RenderAction("Partial");}

    </body>


</html>

它不起作用......

<body>        
        @{Html.RenderAction("Partial");}
        <script type="text/javascript">
            $.ajax({
                type: "post",
                url: "/Home/Partial",
                dataType: "html",                
                success: function (result) {                    
                    $("#content").html(result);
                },
                error: function (result) {
                }
            });
        </script>
        <div id="content">

        </div>
    </body>

我需要使用第二种方式..问题是什么?

1 个答案:

答案 0 :(得分:0)

这是因为<div id="content">尚未加载到dom。尝试将JS脚本放在内容div之后

<body>        
        @{Html.RenderAction("Partial");}

        <div id="content">

        </div>
 <script type="text/javascript">
            $.ajax({
                type: "post",
                url: "/Home/Partial",
                dataType: "html",                
                success: function (result) {                    
                    $("#content").html(result);
                },
                error: function (result) {
                }
            });
        </script>
    </body>

或者您可以包装您的ajax请求文档就绪事件处理程序

<script type="text/javascript">
           $(function{
                $.ajax({
                    type: "post",
                    url: "/Home/Partial",
                    dataType: "html",                
                    success: function (result) {                    
                        $("#content").html(result);
                    },
                    error: function (result) {
                    }
                });
            });
 </script>