如何基于Querystring在ASP.NET中调用JavaScript函数


<%@ Page Language="C#" AutoEventWireup="true" %>
    <%
        string paramString = Request.QueryString["query"];
        if (null != paramString)
        {
            if (paramString.ToLower() == "ValueIsRight".ToLower())
            {
                //Here I want to invoke ABC function below defined in my asp page
            }
        }
    %>
 <script type="text/javascript">
        function ABC {
            }
</script>

我是ASPX的新手,想知道是否有调用此功能?我尝试使用call关键字,但它没有出现在我的IDE中。

,据我所知,您真的不能做到这一点。C#在服务器上运行之前,请在为客户端的请求中运送HTML之前,因此运行JavaScript功能将要求服务器运行自己的JavaScript引擎,而ASP则不会。但是,您可以做的是JavaScript的标志变量,因此客户端的负载可以根据您传递的标志进行不同的运行。例如,

<script type="text/javascript">ABC(<%: someFlag.toString() %>)</script>

会将该变量传递给您的脚本!

最基本和最危险的方法是

    <script type="text/javascript">
    function ABC {
        }
     </script>
<%@ Page Language="C#" AutoEventWireup="true" %>
<%
    string paramString = Request.QueryString["query"];
    if (null != paramString)
    {
        if (paramString.ToLower() == "ValueIsRight".ToLower())
        {
             Response.Write("<script>");
             Response.Write("ABC();");
             Response.Write("</script>");
            //Here I want to invoke ABC function below defined in my asp page
            //dont use this method
        }
    }
%>

//////////end/////////////////////////////////////////////////////////////////////////注意:JavaScript函数定义在开始。

请使用scriptmanager.registerstartupscript

更详细地了解http://www.dotnetcurry.com/showarticle.aspx?id=200

在客户端上获得Querystring

  function getParameterByName(name) {
name = name.replace(/[[]/, "\[").replace(/[]]/, "\]");
var regex = new RegExp("[\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/+/g, " "));

}

来源 ->如何在JavaScript中获得查询字符串值?

最新更新