用户未登录时的 NullReference
NullReference when user is not logged in
当没有人登录时我无法访问页面。我想在用户 ID 匹配时显示一些按钮,如果没有人登录则只显示带有 FillPage() 的页面。
protected void Page_Load(object sender, EventArgs e)
{
FillPage();
if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
{
int id = Convert.ToInt32(Request.QueryString["id"]);
JobReqModel model = new JobReqModel();
JobDescriptions job = model.GetJob(id);
if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())
{
Button2.Visible = true;
Button3.Visible = true;
Button4.Visible = true;
Lineseparator.Visible = true;
}
else
{
Button2.Visible = false;
Button3.Visible = false;
Button4.Visible = false;
Lineseparator.Visible = false;
}
}
我在这一行得到了 NullReference
if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())
我明白为什么是 NULL 但我如何避免这种情况?我尝试测试 ProviderUserKey 是否为 null,然后才使用 Fillpage。
只需添加一个空检查。
因为如果 GetUser()
returns 为 null,您在尝试访问其 ProviderUserKey
属性.
时有一个 NRE
if (MemberShip.GetUser() != null && Membership.GetUser().ProviderUSerKey.ToString() == josb.PostedBy)
当没有人登录时我无法访问页面。我想在用户 ID 匹配时显示一些按钮,如果没有人登录则只显示带有 FillPage() 的页面。
protected void Page_Load(object sender, EventArgs e)
{
FillPage();
if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
{
int id = Convert.ToInt32(Request.QueryString["id"]);
JobReqModel model = new JobReqModel();
JobDescriptions job = model.GetJob(id);
if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())
{
Button2.Visible = true;
Button3.Visible = true;
Button4.Visible = true;
Lineseparator.Visible = true;
}
else
{
Button2.Visible = false;
Button3.Visible = false;
Button4.Visible = false;
Lineseparator.Visible = false;
}
}
我在这一行得到了 NullReference
if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())
我明白为什么是 NULL 但我如何避免这种情况?我尝试测试 ProviderUserKey 是否为 null,然后才使用 Fillpage。
只需添加一个空检查。
因为如果 GetUser()
returns 为 null,您在尝试访问其 ProviderUserKey
属性.
if (MemberShip.GetUser() != null && Membership.GetUser().ProviderUSerKey.ToString() == josb.PostedBy)