【问题标题】:Javascript variable in razor ActionLink剃刀 ActionLink 中的 Javascript 变量
【发布时间】:2012-04-02 19:31:04
【问题描述】:
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?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 这仅在您没有第二个参数时才有效。像 new{boxId=-1,page=1} 这样的东西会失败。分隔符 & 将被 html 编码为 &并且页面参数在阳离子上不可用。要使其工作,您需要使用 @Html.Raw(Html.ActionLink...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多