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 回答