[英]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.