2013-10-26 38 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>