2013-10-26 36 views
3

我想我的客户的javascript文件添加到我的CSHTML不能添加JavaScript文件CSHTML

我与mvc4

工作我尝试这两种方式

@Scripts.Render("~/Scripts/Register.js") 
<script type="text/javascript" src="~/Scripts/Register.js"></script> 

没有什么作品。

我想这样做,因为我想检查选择更改。

$(document).ready(function() { 
    $('#selectRegisterType').on('change', function() { 
     alert("ddddddd"); 
    }); 
}); 

也这是HTML

<select id="selectRegisterType"> 
    <option value="None">Select One</option> 
    <option value="tenant">Tentant</option> 
    <option value="Apartment Owner">Apartment Owner</option> 
</select> 

任何帮助的代码,将不胜感激

+0

您是否找到任何解决方案? –

回答

0

你在哪里把你的脚本?由于这看起来像JQuery代码,你以前加载JQuery吗?

我把的jsfiddle你的代码,看起来像它的工作只是罚款是:

$(document).ready(function() { 
    $('#selectRegisterType').on('change', function() { 
     alert("ddddddd"); 
    }); 
}) 

http://jsfiddle.net/h2L6d/ (重复的代码在这里,因为我不能把一个链接到的jsfiddle没有一些代码)

在我看来,它不会“工作”的唯一原因是您在调用脚本之前没有加载JQuery。通常情况下,我加载这些JS库_Layout.cshtml的页脚下面:

 </footer>   
     @Scripts.Render("~/bundles/js") 
     <script src="~/Scripts/jquery.slidePanel.js"></script>    
     @RenderSection("scripts", required: false)   
    </body> 

而具体到一个脚本部分页面,在CSHTML视图底部的脚本:

@section scripts { 
    @Scripts.Render("~/bundles/jstree") 
} 

这样我确定我的js库总是在本地页面脚本之前加载。未捆绑的脚本稍后会添加,并且应该捆绑在一起。

2

使用MVC4是非常好的,你应该利用你的App_Start文件夹中的BundleCollection,你会看到BundleConfig.cs,并且你可以添加你的javascript和样式等等。

现在你需要写的是

public static void RegisterBundles(BundleCollection bundles) 
    { 
bundles.Add(new ScriptBundle("~/Scrips/Register").Include(
      "~/Scripts/Register.js")); 

    } 

,并在你的身体标记内页脚标签

</footer> 
@Scripts.Render("~/bundles/Register") 
@RenderSection("scripts", required: false) 
</body> 

< /html> 

你可以以其他方式使用一些脚本一样,直接

链接到你的脚本网址
</footer> 
     <script type="text/javascript"> 

       var e = document.createElement('script'); 
       e.src = '@Url.Content("~/Scripts/Register.js")'; 
       e.type = 'text/javascript'; 
       document.getElementsByTagName("head")[0].appendChild(e); 

     </script> 
</body> 
</html>