3

我有一个表格行的部分视图。表中的每一行描述一个元素。一个元素可以有子元素,但如果它是一个子元素,它就不能有它自己的子元素。在表中,每个父元素都有一行,以及所有子元素的列表。我正在努力在他们可以单击的子元素旁边添加一个链接,它将不再是一个子元素。所以它需要从列表中删除,并在你刚刚取出它的父元素下的表中添加一行。我有以下 javascript 函数可以正确更新数据库中的元素以不再有父元素并将其从列表中删除。

    function removeElementFromParent(id, parentid) {
        if (confirm("Are you sure you want to remove this element from the group?")) {
            $.post('@Url.Content("~/Pack/RemoveElementFromParent")', { "elementid": id });
            $('#' + id).remove();
        }
    }

要创建行并插入它,我尝试这样做:

$('@Url.Action("~/Pack/ElementRow", new { elementid = id })').insertAfter('#' + parentid);

但这不起作用,因为您不能在 @Url.Action(...) 中使用 javascript 变量 id。我已经使用它$('#id').load(@Url.Action(...));来加载请求的数据。我尝试做类似的事情,但由于我们没有明确的加载位置,因此在这种情况下不会起作用。此外,您仍然无法使用 javascript 变量。

如果有更好的方法可以做到这一点,我们将不胜感激


编辑

这是我的解决方案:

$('<tr id="' + id + '"></tr>').insertAfter('#' + parentid);
$('#' + id).load('@Url.Action("ElementRow")' + '?elementid=' + id);
4

1 回答 1

1

如果您想将 javascript 变量与 Url.Action 一起使用,那么您应该编写类似这样的内容

$('@Url.Action("~/Pack/ElementRow")' + "?elementid=" + id).insertAfter('#' + parentid);

希望这能解决你的问题。

于 2012-06-19T17:11:13.673 回答