当没有人登录时我无法访问页面。我想在userID匹配时显示一些按钮,如果没有人记录则只显示带有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。
答案 0 :(得分:1)
只需添加空检查。
如果GetUser()
返回null,则在尝试访问其ProviderUserKey
属性时您有NRE。
if (MemberShip.GetUser() != null && Membership.GetUser().ProviderUSerKey.ToString() == josb.PostedBy)