2012-03-17 106 views
12
var boxIdValue = 233; 
var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=233}, null)'; 

當我硬編碼boxId然後它的工作。但是當我寫:JavaScript中可變的剃鬚刀ActionLink

var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=boxIdValue}, null)'; 

它沒有。這樣可以混合JavaScript var和剃鬚刀嗎?

回答

21

看一看this related Stack Overflow的問題。

這是一個挑戰的原因是Razor方法在呈現時在Web服務器上執行,而JavaScript在運行時在客戶端瀏覽器上執行。

我會用,如果你沒有第二個參數做這樣

var boxIdValue = 233; 
var link = '@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=-1}, null)' 
link = link.replace('-1', boxIdValue); 
var result = title + '<br />' + link; 
+0

東西纔會有效解決這個問題。類似new {boxId = -1,page = 1}將會失敗。分隔符&將被編碼爲&,頁面參數在陽離子上不可用。爲了它的工作,你需要使用@ Html.Raw(Html.ActionLink ... – 2017-12-20 08:49:28