JS缺少形式参数

时间:2013-05-16 22:23:22

标签: c# javascript asp.net registerclientscriptblock

在网站中,我需要在加载页面时根据代码后面的参数设置切换面板,并且需要通过javascript切换。该参数被包含在代码隐藏的javascript函数中,但是我收到了“缺少形式参数”的错误,可能是什么问题?

这是RegisterClientScriptBlock生成的代码:

<script language='javascript'>function switchactionpanel(1)</script>

以下是注册脚本以在加载时调用的代码隐藏:

protected void Page_Init(object sender, EventArgs e)
{
    String switchAction = "<script language='javascript'>function switchactionpanel(" + (int)((Global.upAction) Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>";
    Page.RegisterClientScriptBlock("switchaction", switchAction);
}

这是aspx文件中的javascript函数:

<script type="text/javascript">
    function switchactionpanel(upaction) {
        switch (upaction) {
            case 1:
                $('#urfcontainer').hide();
                $('#rstcontainer').show();
                break;
            case 2:
                $('#urfcontainer').show();
                $('#rstcontainer').hide();
                break;
        };
    }
</script>

1 个答案:

答案 0 :(得分:0)

这是因为生成的javascript错误。你有一个'function'关键字太多了。你得到:

 <script language='javascript'>function switchactionpanel(1)</script>

这没有意义。只要确保你得到

 <script language='javascript'>switchactionpanel(1)</script>

你应该没事。在此处删除'function'关键字:

String switchAction = "<script language='javascript'>function switchactionpanel(" + (int)((Global.upAction) Enum.Parse(typeof(Global.upAction), Global.ProfileAction.ToString())) + ")</script>";