ASP.NET对象

ASP.NET对象

1.  Page对象

名称

功能说明

IsPostBack属性

获取一个值,该值表示该页是否正为响应的客户端回发而加载

IsValid属性

获取一个值,该值表示一个页面是否通过验证

EnableViewState属性

获取或设置一个值,该值指示当前页请求结束时是否保持其视图状态

Validators属性

获取请求的页上包含的全部验证空间的集合

DataBind方法

将数据源邦定到被调用的服务器控件及其所有子控件

FindControl方法

在页面中搜索制定的服务器控件

RegisterClientScriptBlock方法

向页面发出客户端脚本块

Valiadte方法

指示页面中所有验证控件进行验证

Init事件

当服务器空间初始化时发生

Load事件

当服务器控件加载到Page对象中时发生

Unload事件

当服务器控件从内存中卸载时发生

1.1   IsPostBack属性

protected void Page_Load(object sender, EventArgs e)

    {

        if (!this.IsPostBack)

        {

            //如果页面为首次加载,则进行一些操作

        }

}

1.2   IsValib属性

protected void Button1_Click(object sender, EventArgs e)

    {

        if (Page.IsValid == true)

        {

            Response.Write("<script>alert('您的输入信息通过验证!')</script>");

        }

        else

        {

            Response.Write("<script>alert('您的输入信息验证失败!')</script>");

        }

}

1.3   RegisterClientScriptBlock方法

RegisterClientScriptBlock("RegisterClientScriptBlock","<script>var RegisterClientScriptBlock;</script>");

2.  Response对象

名称

功能说明

BufferOutput属性

获取或设置一个值,该值指示是否缓冲输出

ContentType属性

获取或设置输出流的HTTP MIME类型

Cookies属性

获取响应Cookies集合

Expires属性

获取或设置该页在浏览器上缓存过期之前的分钟数

IsClientConnected属性

获取一个值,该值指示客户发送当前所有缓冲的输出

Clear方法

清除缓冲区中的所有内容输出

Flush方法

刷新缓冲区,向客户端发送当前所有缓冲区的输出

End方法

将当前所有的缓冲的输出发送到客户端,停止该页面的执行

Redirect方法

将客户端重丁香到新的URL

Write方法

将信息写入HTTP输出内容流

2.1 Write方法

Page.Response.Write("现在时间是:"+DateTime.Now.ToString());

<%

        Response.Write("我的地盘");

    %>

    <%="我的地盘" %>

2.2 End方法

    Response.Write(@"http://blog.csdn.net/wkjs");

    Response.End();

Response.Write("我的地盘");

“我的地盘”就不会输出。

2.3 Redirect方法

Response.Redirect(@"http://blog.csdn.net/wkjs");

2.4 ContentType属性

//默认值为text/html

Response.ContentType = "image/gif";

3.  Request对象

名称

功能说明

Browser属性

获取有关正在请求的客户端的浏览器功能的信息

Cookies属性

获取客户端发送的Cookies的集合

Files属性

获取客户端上传的文件的集合

Form属性

获取表单变量的集合

QueryString属性

获取HTTP查询字符串变量集合

ServerVariables属性

获取Web服务器变量的集合

UserHostAddress属性

获取远程客户端的主机IP地址

SaveAs方法

HTTP请求保存到磁盘

3.1 Form数据集合

<!--form.htm-->

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>使用POST传送数据</title>

</head>

<body>

    <form method="post" action="Default2.aspx">

        清输入您的大名:<input type="text" name="mingzi" /><br />

        <input type="submit" value="看看" />

    </form>

</body>

</html>

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        string strmessage = "您的大名是:";

        strmessage += Request.Form["mingzi"];

        Response.Write(strmessage);

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>使用POST传送数据</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

3.2 QueryString数据集合

<!--form.htm-->

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

    <title>使用GET传送数据</title>

</head>

<body>

    <form method="get" action="Default2.aspx">

        清输入您的大名:<input type="text" name="mingzi" /><br />

        <input type="submit" value="看看" />

    </form>

</body>

</html>

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        string strmessage = "您的大名是:";

        //strmessage += Request.Form["mingzi"];

        strmessage += Request.QueryString["mingzi"];

        Response.Write(strmessage);

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>使用GET传送数据</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

3.3 ServerVariables数据集合

环境变量名

说明

CONTENT_LENGTH

发送到客户端的文件长度

CONTENT_TYPE

发送到客户端的文件类型

QUERY_STRING

URL中查询字符串

LOCAL_ADDR

服务器IP地址

REMOVE_ADDR

客户端IP地址

REMOVE_HOST

客户端主机名

REMOVE_PORT

客户端端口号

SCRIPT_NAME

当前文件的程序名(包含虚拟路径)

SERVER_NAME

服务器名称

SERVER_PORT

服务器接受请求的端口号

PATH_INFO

当前文件的虚拟路径

HTTP_USER_AGENT

客户端浏览器的信息

Response.Write(Request.ServerVariables["SERVER_NAME"].ToString());

3.4 Browser属性

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        HttpBrowserCapabilities bc = Request.Browser;

        Response.Write("<p>您所用的浏览器信息如下:</ p><br />");

        Response.Write("名称及版本:"+bc.Type+"<br />");

        Response.Write("类型:" + bc.Browser + "<br />");

        Response.Write("版本号:" + bc.Version + "<br />");

        Response.Write("主板本号:" + bc.MajorVersion + "<br />");

        Response.Write("次版本号:" + bc.MinorVersion + "<br />");

        Response.Write("平台:" + bc.Platform + "<br />");

        Response.Write("是否为测试版:" + bc.Beta + "<br />");

        Response.Write("是否为美国在线浏览器:" + bc.AOL + "<br />");

        Response.Write("是否为基于Win16计算机:" + bc.Win16 + "<br />");

        Response.Write("是否为基于Win32计算机:" + bc.Win32 + "<br />");

        Response.Write("是否支持HTML框架:" + bc.Frames + "<br />");

        Response.Write("是否支持HTML表格:" + bc.Tables + "<br />");

        Response.Write("是否支持Cookie" + bc.Cookies + "<br />");

        Response.Write("是否支持VBScript" + bc.VBScript + "<br />");

        Response.Write("是否支持JavaScript" + bc.JavaScript + "<br />");

        Response.Write("是否支持Java Applets" + bc.JavaApplets + "<br />");

        Response.Write("是否支持ActiveX" + bc.ActiveXControls + "<br />");

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

4.  Server对象

名称

功能说明

MachineName属性

获取服务器的计算机名称

ScriptTimeout属性

获取和设置文件最长执行时间(一秒计)

CreatObject方法

创建COM对象的一个服务器实例

Execute方法

使用另一页执行当前请求

HtmlEncode方法

对要在浏览器中显示的字符串进行编码

HemlDecode方法

对已被编码以清除无效HTML字符的字符串进行解码

UrlEncode方法

对指定字符串以URL格式进行编码

UrlDecode方法

URL格式字符串进行解码

MapPath方法

将虚拟路径转换为物理路径

Transfer方法

终止当前页面的执行,并开始执行新的请求页

4.1 ScriptTimeout属性  

         用来查看或设置请求超时时间,默认为90秒,如果一个文件执行时间超过此属性设置的时间,则自动停止执行,这样可以防止某些可能进入死循环的程序导致服务器资源的大量消耗。

         如果页面需要较长的运行时间,比如一个大的文件要上传。Server.ScriptTimeout = 200;

4.2 HtmlEncode方法

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        string str1, str2;

        str1 = "<h2>大家好</h2>";

        str2 = Server.HtmlEncode(str1);

        Response.Write(str1);

        Response.Write(str2);

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

4.3 UrlEncode方法

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        string url;

        url = "http://blog.csdn.net/wkjs/default.aspx?ID=";

        url += Server.UrlEncode("王康");

        url += "&b=" + Server.UrlEncode("ab  cd e");

        Response.Write(url);

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

4.4 MapPath方法

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Write("当前目录物理路径:" + Server.MapPath(".")+"<br />");

        Response.Write("上一级目录物理路径:" + Server.MapPath("..") + "<br>");

        Response.Write("网站根物理路径:" + Server.MapPath("/") + "<br>");

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

4.5 Execute方法

<!Default2.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        //用来停止当前网页,转到新的网页执行,并执行完毕后返回原网页继续执行

        Server.Execute("Default.aspx");

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

4.6 Transfer方法

<!Default2.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        //用来停止当前网页,转到新的网页执行,并执行完毕后不返回原网页继续执行

        Server.Transfer("Default.aspx");

        Response.Write("王康");

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

5.  Application对象

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        //利用Application存贮信息

        Application.Add("var1", @"http://blog.csdn.net/wkjs");

        Application["var2"] = @"我的地盘";

        Application.Lock();

        Application["age"] = 120;

        Application.UnLock();

        //使用Application中信息

        object obj1 = Application.Contents[0];

        object obj2 = Application[0];

        object obj3 = Application.Contents["var2"];

        object obj4 = Application["var2"];

        Response.Write(obj1 + "<br />");

        Response.Write(obj2 + "<br />");

        Response.Write(obj3 + "<br />");

        Response.Write(obj4 + "<br />");

        //删除Application中的信息

        Application.Remove("var1");

        Application.RemoveAll();

        Application.RemoveAt(0);

        Application.Clear();

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

6.  Session对象

6.1 使用Session

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        Session["name"] = "王康";//存储

        Response.Write(Session["name"] + "<br />");//第一次输出

        Session.Abandon();//页面执行完结束当前会话

        Response.Write(Session["name"] + "<br />");//第二次输出

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

6.2 配置Session

<configuration>

    <appSettings/>

    <system.web>

      <sessionState mode="InProc"

                    cookieless="false"

                    timeout="20">

        <!--

            timeout属性是可选的,默认为20

            mode属性为必须的

            1.Off:指示禁止会话状态

     2.InProc:指示使用进程内会话状态模式,在服务器本地存储状态数据。使用进程内会话状                  态模式时,如果aspnet_wp.exe或应用程序域重新启动,则会话状态数据将丢失,这种模式的优点是性能较高。

     3.指示使用状态服务器模式,在运行asp.net状态服务器的机器上存储会话状态数据。使用状态服务器模式时,asp.net辅助进程直接与状态服务器对话,当每个Web请求结束时,在客户的Session集合中序列化并保存所有队像。当客户重新访问该服务器时,相关的asp.net辅助进程从状态服务器中以二进制流的形式,另外必须设置<sessionState>标记的stateConnectionString属性,用于指定远程存储会话状态的服务器名称和端口。

           4.指示使用SQL模式,在SQL Server上存储会话状态数据。

        -->

       

      </sessionState>

    </system.web>

</configuration>

7.  Cookies对象

7.1 设置Cookie

名称

说明

Name

获取或设置Cookie的名称

Expires

获取或设置Cookie的过期日期和时间

Domain

获取或设置Cookie关联的域

HakKeys

获取一个值,通过该值指示Cookie是否具有子健

Path

获取或设置要与Cookie一起传输的虚拟路径

Secure

获取或设置一个值,通过该值指示是否安全传输Cookie

Value

获取或设置单个Cookie

Values

获取再单个Cookie对象中包含的键值的集合

<!--Default.aspx-->

<%@ Page Language="C#" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<script runat="server">

 

    protected void Page_Load(object sender, EventArgs e)

    {

        //设置一个名字为usernameCookie,有效期为3

        Response.Cookies["username"].Value = 23.ToString();

        Response.Cookies["username"].Expires = DateTime.Now.AddDays(3);

        //也可以先创建一个Cookie,再添加进Response.Cookie集合

        HttpCookie mycookie = new HttpCookie("username");//生成一个名字为usernameCookie对象

        mycookie.Value = 23.ToString();//设置Cookie

        mycookie.Expires = DateTime.Now.AddDays(3);//设置过期日期和时间

        Response.Cookies.Add(mycookie);//Cookie对象添加到Response.Cookie集合

        //添加多个值

        Response.Cookies["user"]["username"] = "王康";

        Response.Cookies["user"]["userage"] = 23.ToString();

        Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);

        //同上

        HttpCookie mycookie = new HttpCookie("user");

        mycookie.Value["username"] = "王康";

        mycookie.Value["userage"] = 23.ToString();

        mycookie.Expires = DateTime.Now.AddDays(3);

        Response.Cookies.Add(mycookie);

       

    }

</script>

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Browser属性</title>

</head>

<body>

    <form id="form1" runat="server">

    </form>

</body>

</html>

7.2 读取Cookie

    if(Request.Cookies["username"]!=null)

        {

            this.Label1.Text=Request.Cookies["username"].Value;

        }

        if (Request.Cookies["username"] != null)

        {

            HttpCookie mycookie = new HttpCookie("username");

            this.Label1.Text = mycookie.Value;

        }

        if (Request.Cookies["user"] != null)

        {

            //this.Label1.Text = Request.Cookies["username"].Values["username"];

            this.Label1.Text = Request.Cookies["username"]["username"];

            this.Label1.Text += Request.Cookies["username"]["userage"];

        }

8.  对象应用实例

8.1 聊天室程序

protected void Button1_Click(object sender, EventArgs e)

    {

        //defalut.aspx.cs

        string message;

        message = "<font color='red'>" + this.TextBox1.Text + "</font>说:";

        message += this.TextBox2.Text;

        message+="(<i>"+DateTime.Now.ToString()+"</i>)";

        message+="<br />";

        Application.Lock();

        Application["chatcontent"]=(string)Application["chatcontent"]+message;

        Application.UnLock();

        this.TextBox2.Text="";

}

<!--Clobal.asax-->

<%@ Application Language="C#" %>

 

<script runat="server">

 

    void Application_Start(object sender, EventArgs e)

    {

        // 在应用程序启动时运行的代码

        Application["chatcontent"] = "<h2>欢迎你到我的地盘</h2>";

 

    }

   

    void Application_End(object sender, EventArgs e)

    {

        //  在应用程序关闭时运行的代码

 

    }

       

    void Application_Error(object sender, EventArgs e)

    {

        // 在出现未处理的错误时运行的代码

 

    }

 

    void Session_Start(object sender, EventArgs e)

    {

        // 在新会话启动时运行的代码

 

    }

 

    void Session_End(object sender, EventArgs e)

    {

        // 在会话结束时运行的代码。

        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

        // SQLServer,则不会引发该事件。

 

    }

      

</script>

<!--default2.aspx-->

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>无标题页</title>

    <meta http-equiv="refresh" content="4" />

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Label ID="Label1" runat="server" Height="32px" Text="Label" Width="780px"></asp:Label></div>

    </form>

</body>

</html>

protected void Page_Load(object sender, EventArgs e)

    {

        //default.aspx.cs

        this.Label1.Text = (string)Application["chatcontent"];

    }

8.2 用户权限检察

<!--login.aspx-->

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>无标题页</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <div style="text-align: center">

            <table border="0" cellpadding="0" cellspacing="0" style="width: 200pt">

                <tr>

                    <td align="center" colspan="2" valign="top">

                        管理员登陆</td>

                </tr>

                <tr>

                    <td align="center" style="width: 88px; text-align: right" valign="top">

                        姓名:</td>

                    <td align="center" style="text-align: left" valign="top">

                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>

                </tr>

                <tr>

                    <td align="center" style="width: 88px; text-align: right" valign="top">

                        密码:</td>

                    <td align="center" style="text-align: left" valign="top">

                        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td>

                </tr>

                <tr>

                    <td align="center" colspan="2" valign="top">

                        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="登录" /></td>

                </tr>

            </table>

        </div>

   

    </div>

    </form>

</body>

</html>

protected void Button1_Click(object sender, EventArgs e)

    {

        //login.aspx.cs

        string strno = "<Script>alert('用户名或密码错误,请核实')</Script>";

        if (this.TextBox1.Text == "王康" && this.TextBox2.Text == "123456")

        {

            Session["username"] = this.TextBox1.Text;

            Session["userpass"] = this.TextBox2.Text;

            Response.Redirect("admin.aspx");

        }

        else

        {

            Page.RegisterClientScriptBlock("lgiinno", strno);

        }

}

protected void Page_Load(object sender, EventArgs e)

    {

        //admin.aspx.cs

        if (Session["username"] != null && Session["userpass"] != null)

        {

            string username = Session["username"].ToString();

            string userpass = Session["userpass"].ToString();

            if (username != "王康" || userpass != "123456")

            {

                Response.Redirect("login.aspx", true);

            }

        }

        else

        {

            Response.Redirect("login.aspx", true);

        }

}

8.3 访问计数器

protected void Page_Load(object sender, EventArgs e)

    {

        int ivs;

        if (Request.Cookies["vnumber"] == null)

        {

            ivs = 1;

            Response.Cookies["vnumber"].Value = ivs.ToString();

            Response.Cookies["vnumber"].Expires = DateTime.Now.AddYears(2);

            Response.Cookies["flag"].Value = "ok";

            Response.Cookies["flag"].Expires = DateTime.Now.AddMinutes(10);

        }

        else

        {

            if (Request.Cookies["flag"] == null)

            {

                ivs = int.Parse(Request.Cookies["vnumber"].Value) + 1;

                Response.Cookies["vnumber"].Value= ivs.ToString();

                Response.Cookies["vnumber"].Expires = DateTime.Now.AddYears(2);

                Response.Cookies["flag"].Value = "ok";

                Response.Cookies["flag"].Expires = DateTime.Now.AddMinutes(10);

            }

            else

            {

                ivs = int.Parse(Request.Cookies["vnumber"].Value);

            }

        }

        this.Label1.Text = "<font color='red' size='6'>你是第" + ivs.ToString() + "次访问本页面</font>";

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值