gpt4 book ai didi

MVC 部分 View 中包含的 Javascript 仅在第一次运行

转载 作者:行者123 更新时间:2023-11-28 05:01:36 25 4
gpt4 key购买 nike

我有一个按钮,用于通过 jquery ajax 调用加载部分 View ,成功后,只需用返回的 json 字符串替换 div 持有者即可。

部分 View 由一些 javascript 和 html 标签组成。我必须设置 jquery.ajax dataType: "html"以便在加载时在部分 View 中执行 JavaScript。

在父 View 中:

$("#test2Div").on("click", function () {
$.ajax({
type: "POST",
url: '@Url.Action("GetMainSolution", "Solutions")',
data: { IdEjercicioSolucion: 9 },
cache: false,
dataType: "html",
success: function (response) {
$("#placeHolder").html(response.ViewContent);
}
});
});

问题是,这仅在我第一次加载部分 View 时才能正常工作。一旦第一次执行,似乎正在渲染的部分 View 中包含的那些 JavaScript 不再被执行,或者 DOM 中遗漏了一些东西。如果我用 F5 刷新整个页面并再次加载部分 View ,它将再次工作。

请问,有什么想法吗?

编辑1:添加更多示例代码:

父 View :这是主视图。它显示另一个部分 View ,其中包含一些字段和一个按钮。单击该按钮将调用 UpdateChViewerLayoutForm 函数,该函数尝试将以下部分 View 加载到 aqviewerholder div 中。

<div id="dvContainer">

<div class="container">
<div class="row">
@Html.Partial("SolutionsCursoSelectedPartial", Model)
</div>
<div class="row">
<div id="aqviewerholder"></div>
</div>
</div>
</div>

<script type="text/javascript">
function UpdateChViewerLayoutForm(s, e) {

$.ajax({
type: "POST",
url: '@Url.Action("GetSolucionsAQV", "Solutions")',
data: { IdES: s.GetValue() },
success: function (response) {
$("#aqviewerholder").html(response.ViewContent);
}
});
}

</script>

部分 View (SolutionsAQv):

@Code
If Model IsNot Nothing Then
@Html.Raw(Model.TextoHTML)
End If
End Code


<script src="~/Content/AQv/rm.js" type="text/javascript"></script>
<script src="~/Content/AQv/bm.js" type="text/javascript"></script>
<script src="~/Content/AQv/nn.js" type="text/javascript"></script>

请注意,传递给模型的内容需要使用部分 View 中的脚本进行解析。

这在第一次加载中可以正常工作,但在接下来的加载中则无法正常工作。如果刷新整个页面,又可以正常工作了。

我想这可能与通过ajax的部分 View 不执行javascript有关?或者 JavaScript 在下面的执行中没有在 DOM 中找到目标?...但我真的不知道如何继续...

非常感谢

最佳答案

一种可能性是您的部分 View 包含与“主视图”中相同的 jQuery 或其他 javascript 包。第一次渲染它们后,您将拥有两个这样的集合(一组来自主视图,一组来自部分 View )。确保您的网页上只有一个 bundle ,并且没有重复的 bundle 。

这发生在我身上。

P.S:这是一种可能性!我绝不是说这是唯一的原因。我只是认为这可能是一种可能性

关于MVC 部分 View 中包含的 Javascript 仅在第一次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com