无法将javascript文件添加到cshtml

时间:2013-10-26 13:37:30

标签: asp.net-mvc asp.net-mvc-4

我想将我的客户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>

任何帮助将不胜感激

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

你把脚本放在哪里?因为这看起来像JQuery代码,你之前加载JQuery吗?

我把你的代码放在JSFiddle中,看起来它的工作正常:

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

http://jsfiddle.net/h2L6d/ (这里复制了你的代码,因为我没有一些代码就无法链接到JSFiddle)

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

       </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库总是在我的本地页面脚本之前加载。以后添加了不在捆绑中的脚本,也应捆绑在一起。