簡體   English   中英

我可以在aspx文件中使用Page_Load嗎?

[英]Can I use Page_Load in my aspx file?

我正在使用VisualStudio 2013 Express for WEB,並且創建了一個空的Web應用程序,然后添加了一個新的Web表單。

我正在嘗試學習ASP.NET,並且我了解到在會話/頁面生命周期中存在Page_Load,我可以在其中執行頁面加載后立即發生的事情。 據了解,可以將Page_Load事件放在<HTML>標記之前的<HTML> <script>下。

(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)
        {

        }
    }
}

您絕對可以使用腳本標記將服務器端代碼放入aspx中。 但是頁面加載語法應該與后面的代碼(.cs文件)完全匹配

Page_Load(object sender, EventArgs e)

在腳本代碼中,只有Page_Load()根本不會觸發。 如果需要執行此操作,則需要刪除后面代碼中的函數,並替換腳本標簽中的方法簽名

在腳本標簽中,您需要具有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將不會在標記端運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM