剃刀ActionLink中的Javascript变量

时间:2012-03-17 15:14:50

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor asp.net-mvc-5

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?

1 个答案:

答案 0 :(得分:22)

查看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;