我可以在asp.net-mvc 3中的@Ajax.Actionlink中传递Javascript变量吗?

我可以在asp.net-mvc 3中的@Ajax.Actionlink中传递Javascript变量吗?,javascript,ajax,asp.net-mvc,asp.net-mvc-3,Javascript,Ajax,Asp.net Mvc,Asp.net Mvc 3,我有以下Javascript代码: var idJS; $('.disp').click(function () { idJS = $(this).attr("id"); }) 然后我想这样做: @Ajax.ActionLink("myMethod", "myMethod", "HomeController", new { id = idJS }, new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "myDi

我有以下Javascript代码:

var idJS;

$('.disp').click(function () { 
    idJS = $(this).attr("id");   
})
然后我想这样做:

@Ajax.ActionLink("myMethod", "myMethod", "HomeController", new { id = idJS },
  new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "myDiv" })

有可能做到这一点吗?

这是不可能的,因为Razor视图代码是在加载页面时呈现的,因此所有代码都在javascript执行之前解析(转换为HTML)

但是,您可以使用Javascript来更改链接的属性,例如下面的例子(我担心使用JQuery,如果需要的话,可以查找Javascript等价物)

好的,我将查找它,仅限javascript:

document.getElementById("link").href = "/Home/myMethod/" + idJS;

不,服务器端和客户端是两个完全不同的东西。服务器端甚至在到达客户端之前就已呈现。启动$(document).ready()时,服务器已完成

您可以使用jQuery更改链接的id。如果有更多的信息,我将能够提供更多帮助,但使用jQuery更改属性很简单

我会将id设置为硬编码,比如“ajaxBtn”之类,然后在您的click-even for.disp中,将数据属性更改为您需要的属性。但是,如果没有更多的数据,我无法确切地知道为什么需要设置id

document.getElementById("link").href = "/Home/myMethod/" + idJS;