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