1

我关闭了一个花哨的盒子,想用我从花哨控制器获得的参数重定向到其他页面。但是当我关闭花哨的盒子时,它说我不能使用这些参数值错误是:CS0103:名称“CID”不存在于当前背景

这是我的代码

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        var CSec = @Html.Raw(Json.Encode(TempData["Clientseckey"]));
        var CID =  @Html.Raw(Json.Encode(TempData["ClientID"]));
        parent.closeFancybox(); 
        var csec1 =  @Html.Raw(Json.Encode(TempData["Clientseckey"]));
        var url = '@Url.Action("NewAPIForm", "Developer", new { clientID = CID }, new { clientkey = CSec1  })';
        parent.location.href = url;
    });

</script>

CS0103:当前上下文中不存在名称“CID”

4

1 回答 1

0

您遇到的范围问题是因为CID您尝试将其用作服务器端变量的 javascript 变量。

所以不要new {clientId = CID}尝试new { clientId = Html.Raw(Json.Encode(TempDate["Clientseckey"]))}

或者将 CID 放在服务器端变量中:

@{
  var CID2 = Html.Raw(Json.Encode(TempDate["Clientseckey"]));
}

(我称它为 CID2 以便在下面更容易发现差异)然后在 JS 中你可以做

<script type="text/javascript">
    $(document).ready(function () {
        var CSec = @Html.Raw(Json.Encode(TempData["Clientseckey"]));
        var CID =  @CID2;
        parent.closeFancybox(); 
        var csec1 =  @Html.Raw(Json.Encode(TempData["Clientseckey"]));
        var url = '@Url.Action("NewAPIForm", "Developer", new { clientID = CID2 }, new { clientkey = CSec1  })';
        parent.location.href = url;
    });
</script>
于 2013-01-16T21:30:33.047 回答