带有JavaScript变量的ASP.NET MVC 2 Html.ActionLink

Mar*_*ark 5 asp.net-mvc-2

<%: Html.ActionLink("Cancel", "Edit", "Users", new {id = " + userID + "  }, null) %>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,userId是一个变量.这种语法不对,它应该是什么?

Dar*_*rov 6

您不能使用在服务器上运行的HTML帮助程序来使用客户端上已知的Javascript变量.因此,您需要使用您在服务器上配置的信息生成URL.所以你在服务器上所能做的就是:

<%: Html.ActionLink("Cancel", "Edit", "Users", null, new { id = "mylink" }) %>
Run Code Online (Sandbox Code Playgroud)

然后我想在客户端上你正在做一些javascript(理想情况下是jquery),当你想使用这个url和你在客户端计算的userID来查询服务器时,就会出现这种情况.因此,例如,您可以通过附加一些id来动态修改链接操作:

$(function() {
    $('#mylink').click(function() { 
        var userId = ...
        this.href = this.href + '?' + userId;
    });
});
Run Code Online (Sandbox Code Playgroud)

或者如果您想要AJAXify此链接:

$(function() {
    $('#mylink').click(function() { 
        var userId = ...
        $.ajax({
            url: this.href,
            data: { id: userId },
            success: function(result) {
                ...
            } 
        });
        return false;
    });
});
Run Code Online (Sandbox Code Playgroud)