簡體   English   中英

我可以在asp.net-mvc 3中的@ Ajax.Actionlink中傳遞一個Javascript變量嗎?

[英]Can I pass a Javascript variable in an @Ajax.Actionlink in 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 = "myDiv" })

是否有可能做到這一點?

這是不可能的,因為Razor視圖代碼在它加載的頁面時呈現,因此所有代碼在javascript甚至可以執行之前被解析(轉換為HTML)。

但是,您可以使用Javascript來更改鏈接的屬性,例如以下內容(盡管我擔心使用JQuery,如果需要,請查找等效的javascript)

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

好吧,我會查找它,僅限javascript:

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

不是。服務器端和客戶端是兩個非常不同的東西。 服務器端甚至在到達客戶端之前呈現。 當$(document).ready()被觸發時,服務器就完成了。

你可以做的是用jQuery更改鏈接的id。 通過更多信息,我可以提供更多幫助,但使用jQuery更改屬性是一件簡單的事情。

我會將id設置為硬編碼,例如“ajaxBtn”或其他內容,然后,即使是.disp,也可以將數據屬性更改為您需要的數據屬性。 但是,如果沒有更多數據,我無法確切知道您為什么需要設置ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM