2016-08-03 94 views
2

我有布局和视图以及局部视图。我在视图中使用了我的布局,并在视图中加载了ajax的局部视图。我在设计上使用@RenderSection("Script", required: false)加载我的验证的js文件到局部视图这样的说法:将js文件加载到局部视图中

@section Script{ 
    <script src="~/Content/js/register.js"></script> 
} 

但在运行我的项目后,并获得查看源代码,我看到该文件仍然不会加载这个page.Then我把@section Script{ <script src="~/Content/js/register.js"></script> }放在我的View中,用这种方式加载文件,但是任何验证都不运行。但是当我将脚本文件代码复制到部分视图中时,它们正在运行。现在我想知道为什么当我使用文件时不要运行我的脚本?

谢谢!

+0

你是如何渲染你的''通过局部AJAX' view'? –

+0

不,成功请求后,我把结果放入$('#divreg')。html(data); – Farshid

+0

你的'register.js'文件是什么。它引用了动态加载的元素,在这种情况下,您是否使用事件委派? –

回答

2

你可以参考下面的代码,以使你的脚本:

function loadScript(url, callback){ 

    var script = document.createElement("script") 
    script.type = "text/javascript"; 

    if (script.readyState){ //IE 
     script.onreadystatechange = function(){ 
      if (script.readyState == "loaded" || 
        script.readyState == "complete"){ 
       script.onreadystatechange = null; 
       callback(); 
      } 
     }; 
    } else { //Others 
     script.onload = function(){ 
      callback(); 
     }; 
    } 

    script.src = url; 
    document.getElementsByTagName("head")[0].appendChild(script); 
} 

你的情况,你必须使用这个函数是这样的:

$('#divreg').html(data); 
loadScript("~/Content/js/register.js", function(){ 
    //initialization code 
}); 

希望:

你的成功请求后它解决了你的问题。

感谢

编码愉快:)

+0

是的,它的工作。 – Farshid

+0

这太棒了:) –

+0

严重的是,所有的代码只是因为脚本中的代码确实使用事件委派? –