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

本文关键字:什么 实例 设置 对象 对象引用 | 更新日期: 2023-09-27 18:11:00

我的控制器中有我的create View的get和post方法。当我运行这个时,它给了我一个错误:{"对象引用未设置为对象的实例。"剩下的代码是create 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);
}

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

您有条件地调用Membership.GetUser,并且显然期望它可以返回null…如果请求没有经过认证,你甚至没有给currentUser赋值。但是,在构建模型时,您将两次获取currentUser.UserName。如果currentUser为空,则显然失败。

真的,你应该看看异常的堆栈跟踪——它应该告诉你哪里出了问题。