2012-07-02 115 views
29

這可能嗎?在MVC3中使用JavaScript變量剃刀視圖引擎

@Html.ActionLink("Link text", "Action Name", new { id = *JAVASCRIPT VARIABLE* }) 

請用示例代碼解釋。

+0

更換不,這是不可能的。你究竟想要做什麼? –

+1

其實我需要傳遞一個我從javascript獲得的參數。我該如何解決我的問題。 –

回答

15

不,這是不可能的,因爲.NET MVC 3是服務器端代碼和被髮送到客戶端之前,評估,和JavaScript是隻運行客戶端代碼,一旦它在客戶端

但相反的是可能的:

var jsVar = "@yourMvcVar"; 
+5

這是可能的一些工作..看到我的回答 – krilovich

73

它實際上是一個具有以下非常可能:

var hello = "Great Job!"; 

var text = "@Html.ActionLink("Link text", "Action Name", new { id = "JSVar" })" 
text = text.replace("JSVar",hello); 

就這麼簡單! :)

所有@ Html.Action鏈接的作用是創建一個URL字符串,這樣做替換它是一樣的任何JavaScript字符串

+5

良好的解決方法!只需確保替換代碼是健壯的,也許採用string.Format類型的方法:'var text =「@ Html.ActionLink(」Link text「,」Action Name「,new {id =」{0}「}) 「;'不知道{0}是否可以在那個幫手中工作,但你得到我的漂移 –

+4

我接受這個答案,而不是現在接受的答案。 –