Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 引导模式:加载所提供ID的数据_Jquery_Asp.net Mvc_Twitter Bootstrap_Modal Dialog - Fatal编程技术网

Jquery 引导模式:加载所提供ID的数据

Jquery 引导模式:加载所提供ID的数据,jquery,asp.net-mvc,twitter-bootstrap,modal-dialog,Jquery,Asp.net Mvc,Twitter Bootstrap,Modal Dialog,我有一个,可以从不同的超链接启动,每个超链接提供另一个ID 但我想要的是,每次启动模态时,它都会被传递给模态的ID的数据填充。以下是(简化的)代码(请参见代码中的注释以了解解释): 让我们假设有一个带有签名ActionResult Edit(string id)的方法,它将数据返回到放置模态的PartialView 模式已经嵌入到包含所有超链接的页面中,默认情况下不可见 我就是不知道如何根据传递的ID用不同的数据填充它。您可以使用AJAX通过控制器操作从服务器加载新数据: $(function(

我有一个,可以从不同的超链接启动,每个超链接提供另一个ID

但我想要的是,每次启动模态时,它都会被传递给模态的ID的数据填充。以下是(简化的)代码(请参见代码中的注释以了解解释):

让我们假设有一个带有签名ActionResult Edit(string id)的方法,它将数据返回到放置模态的PartialView

模式已经嵌入到包含所有超链接的页面中,默认情况下不可见


我就是不知道如何根据传递的ID用不同的数据填充它。

您可以使用AJAX通过控制器操作从服务器加载新数据:

$(function() {
    $(document).on('click', '.open-EditBookDialog', function () {
        var myBookcaseItemId = $(this).data('id');
        // send an AJAX request to fetch the data
        $.get(this.href, { id: myBookcaseItemId }, function(data) {
            $('#editBookDialog').html(data).modal('show');
        });
        return false;
    });
});
@Html.ActionLink(
    "Some text", 
    "Edit", 
    null, 
    new {
        data_toggle = "modal",
        data_id = bookcaseItem.Id,
        title = "Edit this item",
        @class = "open-EditBookDialog"
    }
)
现在,显然您应该修改应该打开对话框的锚点,使其href指向编辑控制器操作:

$(function() {
    $(document).on('click', '.open-EditBookDialog', function () {
        var myBookcaseItemId = $(this).data('id');
        // send an AJAX request to fetch the data
        $.get(this.href, { id: myBookcaseItemId }, function(data) {
            $('#editBookDialog').html(data).modal('show');
        });
        return false;
    });
});
@Html.ActionLink(
    "Some text", 
    "Edit", 
    null, 
    new {
        data_toggle = "modal",
        data_id = bookcaseItem.Id,
        title = "Edit this item",
        @class = "open-EditBookDialog"
    }
)

谢谢你,差不多可以用了。代码似乎将正确的数据传递给了模态,我现在遇到的唯一问题是模态没有显示(背景变暗,但模态不可见)。我希望能找到答案(当它100%起作用时,我会把它标记为答案)。是的,它现在起作用了。它不起作用的原因是上面的代码试图将模态插入模态(即.html()部分)。我将html()函数替换为replaceWith()函数,现在模式完全被新的模式所替换。@crafter,你说得对。谢谢你指出这一点。我已经更新了答案。
@Html.ActionLink(
    "Some text", 
    "Edit", 
    null, 
    new {
        data_toggle = "modal",
        data_id = bookcaseItem.Id,
        title = "Edit this item",
        @class = "open-EditBookDialog"
    }
)