【发布时间】:2016-01-11 06:52:04
【问题描述】:
我正在进行 AJAX 调用并取回一个 partialView。 在这个 partialView 中,我有要执行的脚本。 在互联网上搜索后,我发现我需要使用“eval”才能完成这项工作。在这之后我发现 $.load() 方法为我做了这个。
但它对我不起作用。
我的代码:
查看:
<div class="col-md-12" id="headerContainer">
<div class="col-md-4 col-xs-12 itemContainerHeader">
<h4> Namn</h4>
</div>
<div class="col-md-4 col-xs-12 itemContainerHeader">
<h4> Epost</h4>
</div>
<div class="col-md-4 col-xs-12 itemContainerHeader">
<h4> Nummer</h4>
</div>
</div>
@foreach (var c in Model.Customers)
{
<div class="col-md-12 col-xs-12 containerListItem">
<div class="col-md-4 col-xs-12">
@(c.FirstName + " " + c.LastName)
</div>
<div class="col-md-4 col-xs-12">
@c.Email
</div>
<div class="col-md-4 col-xs-12">
@c.PhoenNumber
</div>
</div>
}
@section Scripts {
<script type="text/javascript">
$.scissors.customers.init();
</script>
}
使用 AJAX 加载页面时不会执行 init 方法:
getView: function (url, callback, options) {
var settings = {
target: "#contentContainer"
}
$.extend(settings, options);
$.LoadingOverlay("show");
$(settings.target).empty().load(url, function (data) {
if (callback)
callback();
$.LoadingOverlay("hide");
});
}
$.load() 的 jQuery 文档:
脚本执行
当使用没有后缀选择器的 URL 调用 .load() 时 表达式,内容在脚本被传递之前传递给 .html() 删除。这会在脚本块被丢弃之前执行它们。如果 .load() 是在 URL 附加一个选择器表达式的情况下调用的, 但是,在更新 DOM 之前,脚本会被删除, 因此不被执行。两种情况的示例如下所示:
在这里,任何作为文档的一部分加载到#a 中的 JavaScript 都会 成功执行。
1 $("#a").load("article.html");
我错过了什么?
【问题讨论】:
-
我猜你需要在脚本之前加载一个库。
-
它在布局页面中加载,并且在我登录后一直存在
-
返回 PartialViewResult 时不呈现部分。
标签: javascript jquery html ajax asp.net-mvc