参照されたアセンブリから ASPX ページを使用しようとすると、この問題が発生します。このページは、コンテンツ ページとそのマスター ページで構成されます。この例外は、別の Web プロジェクトからコンテンツ ページの Web コントロールにアクセスした場合にのみ発生しますが、そのページが属する同じプロジェクトからそのページにアクセスした場合は発生しません。
最初は、このページは通常の 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>
コンテンツページ:
<%@ MasterType VirtualPath="~/MasterPage.Master" %>
<%@ 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.
}
前に言ったように、参照されたアセンブリを介して別のプロジェクトからこのページにアクセスしたときにのみ、この問題が発生しました。マスター ページ プロジェクトであれ、以前のプロジェクトのアセンブリを参照するプロジェクトであれ、web.config で何かを構成する必要があるかどうかはわかりません。