对象引用未设置为对象的实例:我在做什么?

时间:2011-10-11 09:53:28

标签: c# asp.net-mvc-3

我的控制器中有创建视图的get和post方法。当我运行它时,它给了我一个错误:{“对象引用未设置为对象的实例。”}其余的代码是创建get和post方法..有没有人知道我可能做错了什么?

// GET: /Title/Create
public ActionResult Create()
{
    var model = new title
    {
        create_dt = DateTime.Now,
        last_maint_dt = DateTime.Now,
        row_version = 1,
        status = "ACTIVE",
        user_id = currentUser.UserName,
        last_user_id = currentUser.UserName

    }; 

    return View(model);
}


// POST: /Title/Create
[HttpPost]
public ActionResult Create(title title)
{
    if (ModelState.IsValid)
    {
        db.titles.Add(title);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    if (Request.IsAuthenticated)
    {
        currentUser = Membership.GetUser(false);

        if (currentUser != null)
        {
            userid = (Guid)currentUser.ProviderUserKey;
        }
    }
        var model = new title
        {
            create_dt = DateTime.Now,
            last_maint_dt = DateTime.Now,
            row_version = 1,
            status = "ACTIVE",
            user_id = currentUser.UserName,
            last_user_id = currentUser.UserName
        };

    return View(model);
}

1 个答案:

答案 0 :(得分:3)

您有条件地调用Membership.GetUser并明确期望可以返回null ...如果请求未经过身份验证,您甚至不会为{{{{{{ 1}}。但是,在构建模型时,您将获取currentUser两次。如果currentUser.UserName为空,那么这显然会失败。

实际上,您应该查看异常的堆栈跟踪 - 这应该会显示出错的地方。

相关问题