我的控制器中有创建视图的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);
}
答案 0 :(得分:3)
您有条件地调用Membership.GetUser
并明确期望可以返回null ...如果请求未经过身份验证,您甚至不会为{{{{{{ 1}}。但是,在构建模型时,您将获取currentUser
两次。如果currentUser.UserName
为空,那么这显然会失败。
实际上,您应该查看异常的堆栈跟踪 - 这应该会显示出错的地方。