2012-10-25 80 views
1

我正在使用MVC 3.0,我只是想知道如何將一個JavaScript變量傳遞給Url.Action這是一種服務器端方法?如何將一個JavaScript變量傳遞給Url.Action?

下面的代碼無法編譯:

string actionName = "MyAction"; 
string url = '@(Url.Action(' + actionName + '))'; 

感謝

+0

不要ü的意思是這樣http://stackoverflow.com/questions/11978681/how-to-assign-value-to-javascript-variable-under-mvc3-razor-with-viewbag? –

+3

這是一個非常好的有效問題/問題,它有一個有效的答案/解決方案。爲什麼有些人冷靜下來?! –

+0

它也發生在我們所有人以及男人身上。別擔心。 :) –

回答

2

你在做什麼有一些缺陷,主要在於@ Url.Action在服務器上運行JavaScript的客戶端上運行一段時間。

如果你想生成客戶端上的網址,你將不得不自己做在JavaScript中,例如:

var url = '/home/' + actionName; 
+0

關於所問的問題,所以你不可能將客戶端變量傳遞給Url.Action的服務器端代碼? –

+0

是的,這是不可能的。您必須將javascript參數包含在GET或POST請求中才能在服務器上訪問,這意味着在JavaScript執行後您需要使用該值執行GET或POST操作,導致頁面刷新,以便值可以在服務器上讀取,與提交HTML表單時相似。你也可以使用ajax請求並通過javascript變量發送,然後讓服務器返回url變量,然後在客戶端做任何你想做的事情 –

相關問題