如何在ASP.NET中调用基于QueryString的javascript函数

时间:2014-03-07 04:06:41

标签: javascript html asp.net

<%@ 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中。

2 个答案:

答案 0 :(得分:1)

据我所知,你不可能真的这么做。在为客户端的请求发送html之前,c#在服务器上运行,因此运行该javascript函数将要求服务器运行自己的javascript引擎,而ASP不会。你能做什么,是javascript的标志变量,所以当客户端加载时,它可以根据你传入的标志以不同的方式运行。例如

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

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

答案 1 :(得分:0)

最基本和最危险的方式是

    <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
        }
    }
%>

/////////端///////////// 注意:javascript函数定义在开始。

请使用ScriptManager.RegisterStartupScript

要更详细地了解访问http://www.dotnetcurry.com/showarticle.aspx?ID=200

在客户端上获取查询字符串

  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, " "));

}

源 - &GT; How can I get query string values in JavaScript?