繁体   English   中英

Ajax.ActionLink()呈现部分视图脚本,但JavaScript代码不

[英]Ajax.ActionLink() Renders Partial View Scripts But JavaScript code does not

我在MVC应用程序中使用Kendo Grid。 网格具有一个Command列,其中包含用于Details的自定义按钮,该按钮调用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,该Kendo DropDownList在其包含div内部生成脚本。 如果我像上面那样向服务器发送请求,这些脚本将无法工作,但是如果我像下面那样创建Ajax.ActionLink() ,它们将可以工作。

@Ajax.ActionLink("Detail", "Details", new { id = 2 }, new AjaxOptions() 
{
    UpdateTargetId="AjaxDiv",
    HttpMethod="GET",
    InsertionMode=InsertionMode.Replace 
})

我被网格上的“详细信息”按钮所困扰,任何解决方案如何以这种方式呈现脚本?

如果您通过innerHTML添加到页面的内容中有脚本,则该脚本将不会执行,一种可行的解决方案是派生这些脚本标签,然后通过Javascript将它们再次添加到您的页面中,以便它们这次执行。

请参考: https : //stackoverflow.com/a/20584396/1821461

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM