javascript - 使用 jquery 加载和插入 ASP.NET 分部 View

标签 javascript jquery asp.net asp.net-mvc-3 partial-views

我有表格行的部分 View 。表中的每一行描述一个元素。一个元素可以有子元素,但如果它是一个子元素,它就不能有自己的子元素。在表格中,每个父元素都有一行,并且所有子元素都有一个列表。我正在努力在他们可以单击的子元素旁边添加一个链接,它将不再是一个子元素。所以它需要从列表中删除,并在您刚刚将其取出的父元素下的表中添加一行。我有以下 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);

最佳答案

如果你想在 Url.Action 中使用 javascript 变量,你应该这样写

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

希望这能解决您的问题。

关于javascript - 使用 jquery 加载和插入 ASP.NET 分部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105442/

相关文章:

javascript - 使用 .hover() 时如何用链接标记替换文本?

javascript - 基本 JavaScript 警报未显示

c# - 如何在 .NET Core MVC Controller 之外进行缓存和依赖注入(inject)

javascript - 使用变量时,ExecuteScript 不适用于 localStorage

javascript - 对于 IE9,选项卡仅在我单击选项卡时更改,而不是在单击选项卡上的文本时更改

javascript - Crockford 的伪经典继承示例中关于何时使用原型(prototype)的困惑

javascript - 列表项中的表单值

javascript - 将隐藏字段值替换为 NoUiSlider 值的值以传递给 PHP 表单

asp.net - Application_AuthenticateRequest无限循环

asp.net - 查询字符串 : Can a query string contain a URL that also contains query strings?