Var不可见传递给UrlAction

时间:2014-03-18 20:23:49

标签: javascript asp.net-mvc

我已经看到这个在其他示例中工作,但不知道为什么我不能将var值传递给urlAction:

function onCommandInfoClick(e, args) {
    var _reservNo = args.row.data[0];

    // This works as expected.
    alert( _reservNo);

    // The _reservNo var is not visible inside the @UrlAction 
    var url = '@Url.Action("GetContract", "Reservation", new { reservNo = ???? })'

    window.location.href = url;
}

我已通过以下方式解决了问题,但不确定这是否是正确的解决方案

function onCommandInfoClick(e, args) {
    var _reservNo = args.row.data[0];
    var url = '@Url.Action("GetContract", "Reservation", new { reservNo = "selection"})'
    window.location.href = url.replace("selection", _reservNo);

2 个答案:

答案 0 :(得分:0)

另一个选择是在服务器端生成URL,在那里你应该有reserveNo变量,然后在你的json中返回URL。应该更容易维护,因为如果您重写路由,则不必在客户端代码中进行任何更改。

答案 1 :(得分:0)

您可以执行以下操作 -

var url = '@Url.Action("GetContract", "Reservation", new { reservNo = ' + _reservNo + '})'