我在单视图页面的complet项目中使用部分视图
我在所需的partail中添加我的脚本内联。问题是,当我的第一次调用时它的工作正常,但如果我下次打开那么我的脚本的事件会多次激活。
我的脚本位于此页面内的partailview页面中,子partail正在调用此脚本。
<script>
$(document).ready(function () {
$(document.body).keydown(function (event) {
if (event.keyCode == 13) {
$(":input,select,textarea")[$(":input,select,textarea").index(document.activeElement) + 1].focus();
return false;
}
});
});
</script>
这是Index partail child partail是表格partail。
当我再次调用Index Partail时,首先清除div为index partail html,然后使用ajax附加Index partail。
答案 0 :(得分:1)
部分视图不应该用于渲染脚本,部分视图背后的想法是它们可以在同一页面上呈现多次次....通常不是那样的你想用脚本。
MVC执行此操作的方法是在Layout.ascx
中为脚本声明一个部分(通常在</body>
之前
@RenderSection("scripts", false)
</body>
然后在partial的顶级视图中,包括要从部分
中调用的脚本@section scripts {
<script>
$(document).ready(function () {
$(document.body).keydown(function (event) {
if (event.keyCode == 13) {
$(":input,select,textarea")[$(":input,select,textarea").index(document.activeElement) + 1].focus();
return false;
}
});
});
</script>
}
这将导致脚本在页面上呈现一次。