簡體   English   中英

ASP.NET - 未調用隱藏代碼 (C#) - AutoEventWireup 設置為 True

[英]ASP.NET - Code behind (C#) not being called - AutoEventWireup is set to True

我正在處理一個 ASP.NET 頁面,后面的代碼正在正確執行。 我做了更多的工作,幾個小時后嘗試運行它,代碼停止執行。 我不明白為什么它不再運行 C# 代碼。 我可以在 Google/Stack Overflow 上找到的問題背后更常見的代碼指出 AutoEventWireup 被設置為 false 或缺少 runat 服務器,但在我的情況下似乎並非如此? 我有一種感覺,這是一個小錯誤,但我似乎無法找到它。

這是ASP頁面中的代碼:

<%@ Page Title="Test Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WritebackModel.WritebackModel" Runat="server"%>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

    <script type="text/javascript">

        function setText()
        {
            <%if (successfulWriteback) {%>
                document.getElementById('resultTitle').innerHTML = "Success!";
                document.getElementById('resultBody').innerHTML = "An exception was successfully added!";
            <%} else { %>
                document.getElementById('resultTitle').innerHTML = "Invalid Permissions";
                document.getElementById('resultBody').innerHTML = "Please contact your payroll rep to add a missing work record exception.";
            <%}%>
            <%Console.WriteLine($"Writeback: {successfulWriteback}");%>
        }

        function countdown()
        {
            var countdownTime = document.getElementById('counter');

            countdownTime.innerHTML = parseInt(countdownTime.innerHTML) - 1;

            if (parseInt(countdownTime.innerHTML) <= 0)
            { 
                window.close();
            }
        }

        function manualClose()
        {
            window.close();
        }

        setInterval(function () { countdown(); }, 1000);

        window.onload = setText;

    </script>

    <div class="jumbotron">
        <h1><span id="resultTitle" style="color:#6a67a7;"> </span></h1>
        <p class="lead" style="color:#a3a1c8;"> <span id="resultBody"> </span></p>
        <p class="lead">This window will close automatically within <span id="counter" style="background-color: #694e7b; color: #fff; display: inline-block; padding: 3px 10px; font-weight: bold; border-radius: 5px;">120</span> second(s).</p>
        <p><a onclick="manualClose()" class="btn btn-primary btn-lg">Close now</a></p>
    </div>

</asp:Content>

這是 Site.Master.cs 中的內容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Diagnostics;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WritebackModel
{
    public partial class SiteMaster : MasterPage
    {
        protected static void Page_Load(object sender, EventArgs e)
        {
            WritebackModel.Page_Load(sender, e);
            Debug.WriteLine("Called WritebackModel.Page_Load");
        }
    }
}

這就是 Default.aspx.cs 中的內容

namespace WritebackModel
{
    public partial class WritebackModel : Page
    {
        ...
        public static void Page_Load(object sender, EventArgs e)
        {
            /* Call the appropriate function for the page */
            Debug.WriteLine("Called Pageload function");
            Writeback_MissingWork();
        }
    }
}

控制台調試沒有寫入任何內容。

從這個https://www.c-sharpcorner.com/UploadFile/8911c4/page-life-cycle-with-examples-in-Asp-Net/

您可以嘗試刪除 Page_Load() 方法中的“靜態”。

暫無
暫無

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

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