Ajax.ActionLink() 呈现部分视图脚本但 JavaScript 代码不
Ajax.ActionLink() Renders Partial View Scripts But JavaScript code does not
我在我的 MVC 应用程序中使用 Kendo 网格。网格有一个命令列,其中包含一个自定义按钮,用于调用 Javascript 函数,该函数向服务器发送 ajax 请求以获取局部视图以替换 #AjaxDiv innerHtml
,如下所示:
function BrandDetailView(e) {
var dataItem = this.dataItem($(e.target).closest("tr"));
var brandID = dataItem.PKBrand;
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("AjaxDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "/Brand/Details/" + brandID, true);
xmlhttp.send()
}
Detail 部分视图包含 Kendo DropDownList,它在其包含的 div
中生成脚本。如果我像上面那样向服务器发送请求,这些脚本将无法工作,但如果我创建如下所示的 Ajax.ActionLink()
,它们就会工作。
@Ajax.ActionLink("Detail", "Details", new { id = 2 }, new AjaxOptions()
{
UpdateTargetId="AjaxDiv",
HttpMethod="GET",
InsertionMode=InsertionMode.Replace
})
我被网格上的“详细信息”按钮卡住了,如何以这种方式呈现脚本的任何解决方案?
如果您通过 innerHTML 添加到页面的内容中有脚本,它不会执行,一种可能的解决方案是派生这些脚本标签并通过 Javascript 再次将它们添加到您的页面以便他们这次执行。
请参考:
我在我的 MVC 应用程序中使用 Kendo 网格。网格有一个命令列,其中包含一个自定义按钮,用于调用 Javascript 函数,该函数向服务器发送 ajax 请求以获取局部视图以替换 #AjaxDiv innerHtml
,如下所示:
function BrandDetailView(e) {
var dataItem = this.dataItem($(e.target).closest("tr"));
var brandID = dataItem.PKBrand;
var xmlhttp;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("AjaxDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "/Brand/Details/" + brandID, true);
xmlhttp.send()
}
Detail 部分视图包含 Kendo DropDownList,它在其包含的 div
中生成脚本。如果我像上面那样向服务器发送请求,这些脚本将无法工作,但如果我创建如下所示的 Ajax.ActionLink()
,它们就会工作。
@Ajax.ActionLink("Detail", "Details", new { id = 2 }, new AjaxOptions()
{
UpdateTargetId="AjaxDiv",
HttpMethod="GET",
InsertionMode=InsertionMode.Replace
})
我被网格上的“详细信息”按钮卡住了,如何以这种方式呈现脚本的任何解决方案?
如果您通过 innerHTML 添加到页面的内容中有脚本,它不会执行,一种可能的解决方案是派生这些脚本标签并通过 Javascript 再次将它们添加到您的页面以便他们这次执行。
请参考: