因此,我给出了一个非常简单的例子来说明问题出在哪里。基本上,当我第一次刷新我的局部视图时,该局部视图的所有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事件无关。如何解决此问题?
谢谢!
您不应在部分视图中使用@section scripts
。
如果您在Main View中进行渲染,一切都会很好,因为Razor知道将脚本放置在_Layout
上的位置,但是当您刷新时,如果您基本上进行了ajax调用并获得了HTML行,则可以使用。
由于您仅获得不带_Layout
的部分页面,因此Razor只是剪切了这一行,因此您的脚本链接甚至都不会到达客户端。
您有2个选项:
@section scripts
并放置没有它的脚本链接。我不确定,但是我怀疑您的脚本是否有这种可能性,这取决于您的编写方式。