C# 在通过程序集引用的内容页上引发NullReferenceException异常

C# 在通过程序集引用的内容页上引发NullReferenceException异常,c#,asp.net,.net,exception-handling,nullreferenceexception,C#,Asp.net,.net,Exception Handling,Nullreferenceexception,我在尝试使用引用程序集的ASPX页面时遇到此问题。此页面由内容页及其母版页组成。只有当从另一个web项目访问任何内容页WebControl时,才会出现异常,但当从该页所属的同一个项目访问该页时,则不会出现异常 起初,这些页面应该是常规的ASPX页面,然后它们工作得很好,也就是说,这个例外没有发生,但我们的上级决定将它们包装到母版页面中,以便于重用,或者说有些奇怪,因为这个ASPX页面是自动生成的 所以,我们现在陷入了麻烦:/ 编辑: 我正在添加一些代码以帮助您帮助我: 母版页: <%@ M

我在尝试使用引用程序集的ASPX页面时遇到此问题。此页面由内容页及其母版页组成。只有当从另一个web项目访问任何内容页WebControl时,才会出现异常,但当从该页所属的同一个项目访问该页时,则不会出现异常

起初,这些页面应该是常规的ASPX页面,然后它们工作得很好,也就是说,这个例外没有发生,但我们的上级决定将它们包装到母版页面中,以便于重用,或者说有些奇怪,因为这个ASPX页面是自动生成的

所以,我们现在陷入了麻烦:/

编辑: 我正在添加一些代码以帮助您帮助我:

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs"
Inherits="WebApplicationTemplate.MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <asp:ContentPlaceHolder ID="headPlaceHolder" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form" runat="server">
        <asp:ContentPlaceHolder ID="formPlaceHolder" runat="server">
        </asp:ContentPlaceHolder>
    </form>
</body>
</html>
正如我之前所说的,只有当我通过引用的程序集从另一个项目访问此页面时,我才会遇到这个问题。
我不知道是否必须在任何web.config中配置某些内容,无论是在母版页项目中还是在引用前一个项目程序集的项目中。

当您缺少正在访问其程序集的其他解决方案中存在的某些配置信息时,通常会发生这种错误

您需要从访问其他程序集的当前项目中复制这些设置,例如app.config或web.config

希望这有帮助。

问题已解决

内容页上的第一行把它搞砸了,所以现在看起来是这样的:

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="TestPage.aspx.cs" Inherits="WebApplicationTemplate.TestPage" %>
<asp:Content ID="headContent" ContentPlaceHolderID="headPlaceHolder" runat="server">
</asp:Content>
<asp:Content ID="formContent" ContentPlaceHolderID="formPlaceHolder" runat="server">
    <asp:TextBox ID="id1" runat="server" Text="Text" MaxLength="40" Style="top: 100;
        left: 100; width: 100; height: 100; position: absolute;" />
</asp:Content>
好了,就是这样。我猜不出这是如何解决我的问题的,但确实如此。如果有人能解释一下,满足我的好奇心,我会非常高兴的。
这是不太可能的,但是,如果有人碰巧遇到了这个问题,希望任何人都会觉得这很有用。

哇,现在我想知道为什么我以前没有想到这一点!谢谢,我马上就来试试!
public void Foo()
{
id1.Text = "something"; //Object reference not set to an instance of an object.
}
    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="TestPage.aspx.cs" Inherits="WebApplicationTemplate.TestPage" %>
<asp:Content ID="headContent" ContentPlaceHolderID="headPlaceHolder" runat="server">
</asp:Content>
<asp:Content ID="formContent" ContentPlaceHolderID="formPlaceHolder" runat="server">
    <asp:TextBox ID="id1" runat="server" Text="Text" MaxLength="40" Style="top: 100;
        left: 100; width: 100; height: 100; position: absolute;" />
</asp:Content>
    MasterPage MP;

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        //Setting the master page
        MP = ((WebApplicationTemplate.MasterPage)Master);
    }

    protected void Foo()
    {
        //Accessing a MasterPage control
        MP.Bar.Visible = false;
    }