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

时间:2011-02-21 15:30:44

标签: asp.net-mvc-2

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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

来动态修改链接操作
$(function() {
    $('#mylink').click(function() { 
        var userId = ...
        this.href = this.href + '?' + userId;
    });
});

或者如果你想要AJAX化这个链接:

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