繁体   English   中英

我想在我的aspx网页中调用C#脚本,帮助我实现它

[英]I want to invoke C# script in my aspx webpage, help me implement it

我想在我的aspx网页中调用C#代码。 有人可以告诉我该怎么做吗? C#代码很长,我将其保存在.cs文件中,并将其与网页文件一起放入Web目录中,但是当我尝试将其调用到网页中时,页面上会发生服务器错误。

这是代码,请帮助我正确实现它。

谢谢

<%@ language="C#" %>
<script runat="server">
        string vservADRequest(string vservMsisdn, string vservMarkup, string vservZoneid, bool vservTestMode){
        try{
            StringBuilder vservParams = new StringBuilder();
            vservParams.Append("vr").Append("=").Append(Server.UrlEncode("1.1.0-csharp-20100726")).Append("&");
            vservParams.Append("tm").Append("=").Append(Server.UrlEncode(vservTestMode.ToString())).Append("&");
            vservParams.Append("ml").Append("=").Append(Server.UrlEncode(vservMarkup)).Append("&");
            vservParams.Append("si").Append("=").Append(Server.UrlEncode(Session.SessionID)).Append("&");
            vservParams.Append("mo").Append("=").Append(Server.UrlEncode(vservMsisdn)).Append("&");
            vservParams.Append("ip").Append("=").Append(Server.UrlEncode(Request.UserHostAddress)).Append("&");

            if(Request.Headers.GetValues("x-forwarded-for") != null)
                vservParams.Append("ff").Append("=").Append(Server.UrlEncode(Request.Headers["x-forwarded-for"])).Append("&");

            if(Request.Headers.GetValues("via") != null)
                vservParams.Append("hv").Append("=").Append(Server.UrlEncode(Request.Headers["via"])).Append("&");

            vservParams.Append("ht").Append("=").Append(Server.UrlEncode(Request.Headers["host"])).Append("&");
            vservParams.Append("ru").Append("=").Append(Server.UrlEncode(Request.Path)).Append("&");                
            vservParams.Append("ua").Append("=").Append(Server.UrlEncode(Request.UserAgent)).Append("&");

            if(Request.Headers.GetValues("x-operamini-phone-ua") != null)
                vservParams.Append("ou").Append("=").Append(Server.UrlEncode(Request.Headers["x-operamini-phone-ua"])).Append("&");

            if(Request.Headers.GetValues("x-wap-profile") != null)
                vservParams.Append("up").Append("=").Append(Server.UrlEncode(Request.Headers["x-wap-profile"])).Append("&");

            ArrayList vservNotToLog = ArrayList.Adapter(new String[] { "PRAGMA", "CACHE-CONTROL", "CONNECTION", "KEEP-ALIVE"});
            foreach (string vservHeaderName in Request.Headers){
              if (!vservNotToLog.Contains(vservHeaderName.ToUpper())){
                vservParams.Append(Server.UrlEncode("hd["+vservHeaderName+"]")).Append("=").Append(Server.UrlEncode(Request.Headers[vservHeaderName])).Append("&");
                }
            }
            vservParams.Append("zoneid").Append("=").Append(Server.UrlEncode(vservZoneid));
            ASCIIEncoding vservAscii = new ASCIIEncoding();
            byte[] vservPostBytes = vservAscii.GetBytes(vservParams.ToString());
            string vservAdUrl= "http://rq.vserv.mobi/delivery/adapi.php?"+vservZoneid;
            System.Net.HttpWebRequest vservReq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(vservAdUrl);       
            if (vservReq != null){
                vservReq.Method = "POST";
                vservReq.ContentType = "application/x-www-form-urlencoded";
                vservReq.ContentLength = vservPostBytes.Length;
                vservReq.Timeout = 7000;
                if(Context.Items["X-VSERV-CONTEXT"]!=null && !Context.Items["X-VSERV-CONTEXT"].ToString().Equals("")){
                    vservReq.Headers.Add("X-VSERV-CONTEXT", Context.Items["X-VSERV-CONTEXT"].ToString());
                }
                // add post data to request
                System.IO.Stream vservPostStream = vservReq.GetRequestStream();
                vservPostStream.Write(vservPostBytes, 0, vservPostBytes.Length);
                vservPostStream.Close();
                System.Net.HttpWebResponse vservRes = (System.Net.HttpWebResponse) vservReq.GetResponse();
                string newVservContext=vservRes.GetResponseHeader("X-VSERV-CONTEXT");
                Context.Items.Remove("X-VSERV-CONTEXT");
                Context.Items.Add("X-VSERV-CONTEXT",newVservContext);
                System.IO.StreamReader vservSR = new System.IO.StreamReader(vservRes.GetResponseStream());
                StringBuilder vservOutput = new StringBuilder();
                vservOutput.Append(vservSR.ReadToEnd().Trim());
                vservSR.Close();
                return vservOutput.ToString();
            }else{return ""; }

            }catch (Exception vserve) { return "";}
    }
    </script>
    <%

如果要在aspx中调用方法,则可以使用<% %>符号。

<% =vservADRequest("test", "test", "test", true) %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM