繁体   English   中英

构建 HTML 并使用 jQuery 附加

[英]Building HTML and appending using jQuery

我遇到了如下情况:

$(document).ready(function () {
        var param1 = "A";
        var param2 = "B";
        var param3 = "C";
        $("ul#SomeUL").append('<li><%: Ajax.ActionLink("Click Me", "SomeAction",  new { param1 = "' + param1 + '", param2 = "' + param2 + '", param3 = "' + param3 + '" }, new AjaxOptions() { OnSuccess = "onSuccess" }, new { Class = "ABC" } ) %></li>');

现在的问题是,不是每个 param# 变量的值被“插入”......变量名本身(例如 param1)被“插入”......换句话说,发布到 controller 操作的 routeValues 是param1、param2 和 param3 而不是 A、B 和 C...有谁知道为什么会发生这种情况以及如何解决?

感谢:D

ActionLink 在这种情况下是无用的,因为它们是服务器端代码。 您不能将它们与客户端 javascript 变量混合使用。 下面是我的做法(包含 jQuery 的全部功能):

$(function () {
    var param1 = 'A';
    var param2 = 'B';
    var param3 = 'C';
    $('ul#SomeUL').append(
        $('<li/>', {
            html: $('<a/>', {
                href: '<%= Url.Action("SomeAction") %>',
                text: 'Click Me',
                class: 'abc',
                click: function() {
                    var params = { 
                        param1: param1, 
                        param2: param2, 
                        param3: param3 
                    };
                    $.get(this.href, params, function(result) {
                        onSuccess();
                    });
                    return false;
                }
            })
        })
    );
});

暂无
暂无

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

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