我有一个名为Masterpage.master的母版页文件,除了我尝试在代码隐藏文件中的Page_Load方法中实例化东西之外,我的所有aspx页面都能正常工作。
名为ManageRoles.aspx的aspx文件如下所示 -
<%@ Page Language="C#"
AutoEventWireup="true"
CodeBehind="ManageRoles.aspx.cs"
Inherits="eservice.ManageRoles"
MasterPageFile="~/MasterPage.Master"
%>
<asp:Content ID="Content2"
ContentPlaceHolderID="ContentPlaceHolder1"
runat="server">
<!-- Start of roles -->
<h3>
Manage Roles</h3>
<asp:Label ID="Msg" ForeColor="maroon" runat="server" />
<br />
<!-- End of roles -->
<asp:LoginView ID="LoginView2" runat="server">
<LoggedInTemplate>
<p id="backtoblog"></p>
<!-- End of roles -->
</LoggedInTemplate>
<AnonymousTemplate>
</AnonymousTemplate>
</asp:LoginView>
</asp:Content>
,名为ManageRoles.aspx.cs的代码隐藏文件看起来像这样 -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace eservice
{
public partial class ManageRoles : System.Web.UI.Page
{
private string[] rolesArray;
private string[] usersInRole;
MembershipUserCollection users;
protected void Page_Load(object sender, EventArgs e)
{
// clear the Msg label on each visit
Msg.Text = string.Empty;
}
}
}
Masterpage.master文件包含这样的内容部分 -
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
这是一个Web应用程序项目,它构建正常但在我点击ManageRoles.aspx链接时抛出运行时异常
我收到以下异常 -
System.NullReferenceException未被用户代码处理 Message =“对象引用未设置为对象的实例。” 来源=“电子服务” 堆栈跟踪: at eservice.ManageRoles.Page_Load(Object sender,EventArgs e)位于C:\ Users \ das.arunabh \ Documents \ Visual Studio 2008 \ Projects \ ESERVICE_SOLUTION-MAIN \ eservice \ eservice \ ManageRoles.aspx.cs:第24行 在System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e) 在System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e) 在System.Web.UI.Control.OnLoad(EventArgs e) 在System.Web.UI.Control.LoadRecursive() 在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) InnerException:
答案 0 :(得分:2)
我认为Msg
不是保留字,但您可能想尝试重命名它。很可能设计人员没有在Designer.cs文件中正确创建成员变量。尝试以下(基本上,删除然后读取标签的html以让设计者创建成员变量):
答案 1 :(得分:0)
一般情况下,我会避免在母版页代码文件中进行身份验证服务...使用login.aspx.cs代码文件来实现您的实际身份验证服务,并让masterpage's来执行主页的目的...显示演示文稿和内容
&lt;%@ Master Language =“C#”AutoEventWireup =“true”CodeFile =“Site.master.cs”Inherits =“Site”%&gt; 表单身份验证,授权和用户帐户
用户帐户教程 TODO:菜单会在这里......
注意:http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-cs
答案 2 :(得分:0)
错误表示您尝试为Msg.Text
提供值,但当前范围中不存在Msg.Text
。