gpt4 book ai didi

c# - Runat 服务器变量给出 NULL 引用错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:56 25 4
gpt4 key购买 nike

我有一个非常小的 ASCX 文件,打算用作 BlogEngine.NET 主题的一部分,但我遇到了一个我无法弄清楚的错误。这是 FrontPageBox1.ascx 文件:

<%@ Control Language="C#" Debug="true" AutoEventWireup="true" CodeFile="FrontPageBox1.ascx.cs" Inherits="FrontPageBox1" %>
<%@ Import Namespace="BlogEngine.Core" %>

<div id="box1" runat="server"></div>

这是 C# 代码隐藏文件 (FrontPageBox1.ascx.cs):

using System;
using BlogEngine.Core;

public partial class FrontPageBox1 : BlogEngine.Core.Web.Controls.PostViewBase
{
public FrontPageBox1()
{
Guid itemID = new Guid("6b64de49-ecab-4fff-9c9a-242461e473bf");
BlogEngine.Core.Page thePage = BlogEngine.Core.Page.GetPage(itemID);

if( thePage != null )
box1.InnerHtml = thePage.Content;
else
box1.InnerHtml = "<h1>Page was NULL</h1>";
}
}

当我运行代码时,在引用“box1”的那一行出现错误。

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

“box1”变量也没有出现在 WebMatrix 的 Intellisense 中,但错误是编译后的,所以我认为这不相关。

最佳答案

在 ASP.NET Web 窗体中,aspx/ascx 文件中定义的控件在 Init 页面步骤中初始化,因此仅在 OnInit 事件之后可用。将您的逻辑从构造函数移至 OnInit 事件处理程序

public partial class FrontPageBox1 : BlogEngine.Core.Web.Controls.PostViewBase
{
protected override void OnInit(EventArgs e)
{
Guid itemID = new Guid("6b64de49-ecab-4fff-9c9a-242461e473bf");
BlogEngine.Core.Page thePage = BlogEngine.Core.Page.GetPage(itemID);

if( thePage != null )
box1.InnerHtml = thePage.Content;
else
box1.InnerHtml = "<h1>Page was NULL</h1>";
}
}

关于c# - Runat 服务器变量给出 NULL 引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com