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

私はboxIdをハードコードすると動作します。しかし、私が書くとき:剃刀のJavascript変数

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

それはありません。この方法でjavascript varとrazorを混在させることは可能ですか?

答えて

21

this related Stack Overflowをご覧ください。

これが挑戦的な理由は、実行時にjavascriptがクライアントブラウザで実行されているときに、レンダリング時にRazorメソッドがWebサーバーで実行されるためです。

あなたは二番目のパラメータを持っていけない場合、私は

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

のようなものでしか動作をすることによって、これを解決するだろう。新しい{boxId = -1、page = 1}のようなものは失敗します。セパレータは&htmlで&とエンコードされ、ページパラメータはカチオンで利用できません。それはあなたが@ Html.Raw(Html.ActionLinkを使用する必要が動作するために... –

関連する問題