当用户单击链接时,此方法获取用户 ID 和其他数据并将其写入数据库。由于 id 是自动生成的,我似乎无法找到一种方法来跟踪用户 ID 是什么。
我将会员基础与我的基础分开使用。为了找到用户 ID,我试图比较用户名字符串。我收到此错误:“在执行当前 Web 请求期间生成了未处理的异常。” 还有“无法创建抽象类”。 有没有更好的方法来比较两个数据库中的两个字符串?或者,还有更好的方法?这是我第一次使用 lambda 表达式。
我尝试使用 Single() 和 First() 而不是 Where(),但我仍然得到同样的错误。
[HttpPost]
public ActionResult AddToList(Review review, int id, HttpContextBase context)
{
try
{
if (ModelState.IsValid)
{
//User user = new User();
//user.UserID = db.Users.Where(c => c.UserName == context.User.Identity.Name);
User user = new User();
Movie movie = db.Movies.Find(id);
review.MovieID = movie.MovieID;
string username = context.User.Identity.Name;
user = (User)db.Users.Where(p => p.UserName.Equals(username));
review.UserID = user.UserID;
db.Reviews.Add(review);
db.SaveChanges();
return RedirectToAction("Index");
};
}
catch (DataException)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
return View(review);
}