。NET Core在刷新部分视图时附加的javascript停止工作

问题描述 投票:0回答:1

因此,我给出了一个非常简单的例子来说明问题出在哪里。基本上,当我第一次刷新我的局部视图时,该局部视图的所有javascript都可以正常工作,但是第二次却无法正常工作。我读了一些书,但似乎还是无法使它正常工作。

因此,在此示例中,存在一个局部视图,该局部视图仅包含一个按钮,单击该按钮可在单击时重新加载该局部视图。

主视图

<div id="board-content">
    <partial name="GetData" model='@Model'>
</div>

@section Scripts{

  <script>
        $("#refresh").on("click", function () {

               $.ajax({
                   url: "some/url",
                   type: "get",
                   success: function (result) {
                       $("#board-content").html(result);
                   }
               });
        });
  </script>
}

部分视图:

<button id="refresh">refresh</button>

我了解刷新的局部视图中的新按钮与on click事件无关。如何解决此问题?

谢谢!

jquery .net asp.net-core partial-views asp.net-mvc-partialview
1个回答
0
投票

您不应在部分视图中使用@section scripts

如果您在Main View中进行渲染,一切都会很好,因为Razor知道将脚本放置在_Layout上的位置,但是当您刷新时,如果您基本上进行了ajax调用并获得了HTML行,则可以使用。

由于您仅获得不带_Layout的部分页面,因此Razor只是剪切了这一行,因此您的脚本链接甚至都不会到达客户端。

您有2个选项:

  1. 您应该将脚本放置在主视图中。但是可能存在问题,这取决于脚本的功能以及执行方式。这是一个好习惯,我建议使用它。如果脚本不起作用,则应从脚本的所在位置查看。
  2. 删除@section scripts并放置没有它的脚本链接。我不确定,但是我怀疑您的脚本是否有这种可能性,这取决于您的编写方式。
© www.soinside.com 2019 - 2024. All rights reserved.