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

ハードコードboxIdすると動作します。しかし、私が書くとき:

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

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

4

1 に答える 1

24

この関連する 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;
于 2012-03-17T15:45:55.707 に答える