从子窗口获取值时出现问题

时间:2013-01-16 19:24:01

标签: javascript asp.net-mvc

我关闭了一个奇特的盒子,想要重定向到我从fancybox控制器获得的参数的其他页面。但是当我关闭fancybox它说我不能使用那些参数值 Erro是: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”

1 个答案:

答案 0 :(得分: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>