簡體   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