asp.net mvc问题相关的partail视图脚本

时间:2014-08-08 08:58:59

标签: jquery asp.net-mvc

我在单视图页面的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。

1 个答案:

答案 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>
}

这将导致脚本在页面上呈现一次。