4

我有以下 Javascript 代码:

var idJS;

$('.disp').click(function () { 
    idJS = $(this).attr("id");   
})

然后我想这样做:

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

是否有可能做到这一点?

4

2 回答 2

5

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

但是,您可以使用 Javascript 来更改链接的属性,例如如下所示(虽然我担心使用 JQuery,但如果需要,请查找 javascript 等效项)

$("a").attr("href", "/Home/myMethod/" + idJS);

好的,我会查一下,只有javascript:

document.getElementById("link").href = "/Home/myMethod/" + idJS;
于 2012-05-11T14:52:58.563 回答
1

不,服务器端和客户端是两个非常不同的东西。服务器端甚至在到达客户端之前就已呈现。当 $(document).ready() 被触发时,服务器就完成了。

您可以做的是使用 jQuery 更改链接的 ID。有了更多信息,我将能够提供更多帮助,但是使用 jQuery 更改属性是一件简单的事情。

我会将 id 设置为硬编码,例如“ajaxBtn”或其他内容,然后,在您的点击中,即使是 .disp,也可以将数据属性更改为您需要的属性。但是,如果没有更多数据,我无法确定您需要设置 id 的确切原因。

于 2012-05-11T14:53:20.703 回答