我可以使用Page_Load在我的aspx文件

本文关键字:我的 aspx 文件 Load 可以使 Page 我可以 | 更新日期: 2023-09-27 18:11:04

我正在使用VisualStudio 2013 Express for WEB,我创建了一个空的WEB应用程序,然后添加了一个新的WEB表单。

我正在努力学习ASP。我了解到,在会话/页面生命周期中有Page_Load,我可以在页面加载后执行将发生的事情。事情是我了解到,有可能将Page_Load事件在<script><HTML>标签之前。

(aspx文件名是Register)当我尝试这个:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Learning.Register" %>
<!DOCTYPE html>
<script runat="server">
   int randomnumber = 0;
    public void Page_Load()
    {
        Random rnd = new Random();
        randomnumber = rnd.Next(100000, 1000000);
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <% Response.Write(randomnumber); %>
    </div>
    </form>
</body>
</html>

由于某种原因我得到的都是0。

此外,我注意到在Register.aspx.cs下我有这个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Learning
{
    public partial class Register : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    }
}

我可以使用Page_Load在我的aspx文件

可以使用script标记将服务器端代码放入aspx中。但是页面加载语法应该与(.cs文件)

后面的代码完全匹配。
Page_Load(object sender, EventArgs e)

在你的脚本代码中,你只有Page_Load(),它根本不触发。如果需要执行此操作,则需要删除后面代码中的函数并替换脚本标签

中的方法签名

在script标签你需要有base.OnLoad(e)

protected void Page_Load(object sender, EventArgs e)
{
    base.OnLoad(e)
    Random rnd = new Random();
    randomnumber = rnd.Next(100000, 1000000);
}

那是因为你重写了基类的行为,如果你不调用base.OnLoad(e),那么Page_Load将不会在标记端运行。