我有一个mvc 5项目。在共享布局cshtml文件中,通常的javascript链接到jquery和bootstrap。
我有一个单独的视图,我将此代码添加到:
<div class="test">
@Html.CheckBoxFor(m => m.MyBool, new { @checked = "checked", onClick="toggleVisibility(this)" })
@Html.LabelFor(m => m.MyBool)
</div>
<div id="content">
my content
@Html.TextBoxFor(m => m.MyText, new { id = "TextBoxA", style = "width:20px;" })
<br />
<p>
Lorum ipsum
</p>
<p>
Lorem Ispum
</p>
</div>
点击复选框后,我想在页面上显示或隐藏一些内容。 javascript就是这段代码:
function toggleVisibility(cb) {
var x = document.getElementById("content");
if (cb.checked == true)
//x.style.visibility = "visible"; // or x.style.display = "none";
$("#content").show("fast");
else
// x.style.visibility = "hidden"; //or x.style.display = "block";
$("#content").hide("fast");
}
我遇到的问题是如果我把这个javascript放在脚本标签的共享文件中,我不能在我的视图中使用该函数,但是如果我在视图中使用它我需要手动添加脚本链接到那里的jquery包。像这样:
@Scripts.Render("~/bundles/jquery")
<script type="text/javascript" language="javascript">
function toggleVisibility(cb) {
var x = document.getElementById("content");
if (cb.checked == true)
//x.style.visibility = "visible"; // or x.style.display = "none";
$("#content").show("fast");
else
// x.style.visibility = "hidden"; //or x.style.display = "block";
$("#content").hide("fast");
}
</script>
我想知道这是否正常,如果没有,是否有解决方案。
答案 0 :(得分:3)
您可以在此使用 section
1.在视图中创建一个部分。
@section scripts{
<script type="text/javascript" language="javascript">
function toggleVisibility(cb) {
var x = document.getElementById("content");
if (cb.checked == true)
//x.style.visibility = "visible"; // or x.style.display = "none";
$("#content").show("fast");
else
// x.style.visibility = "hidden"; //or x.style.display = "block";
$("#content").hide("fast");
}
</script>
}
在捆绑调用后,在_layout.cshtml中渲染部分。
@RenderSection("scripts")