我有以下Javascript代码:
var idJS;
$('.disp').click(function () {
idJS = $(this).attr("id");
})
然后我想这样做:
@Ajax.ActionLink("myMethod", "myMethod", "HomeController", new { id = idJS },
new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "myDiv" })
是否可以这样做?
答案 0 :(得分:5)
这是不可能的,因为Razor视图代码是在加载页面时呈现的,所以在javascript甚至可以执行之前,所有代码都被解析(转换为HTML)。
然而,您可以使用Javascript来更改链接的属性,例如以下内容(使用JQuery但我担心,如果需要,请查找等效的javascript)
$("a").attr("href", "/Home/myMethod/" + idJS);
好的,我会查一查,仅限javascript:
document.getElementById("link").href = "/Home/myMethod/" + idJS;
答案 1 :(得分:1)
没有。服务器端和客户端是两个非常不同的东西。服务器端甚至在到达客户端之前呈现。当$(document).ready()被触发时,服务器就完成了。
您可以做的是使用jQuery更改链接的ID。通过更多信息,我可以提供更多帮助,但使用jQuery更改属性是一件简单的事情。
我会将id设置为硬编码,例如“ajaxBtn”或其他内容,然后,在您的点击中甚至为.disp,将数据属性更改为您需要的数据属性。但是,如果没有更多数据,我无法确切知道您为什么需要设置ID。