我已经定义了2个表,并在数据库表中初始化了所有必要的数据条目。
这是我的UsersContext
public class UsersContext : DbContext
{
public UsersContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<UserWork> UserWorks { get; set; }
}
在页面重定向之后,我将SaveChanges()
作为UsersContext
的实例方法调用,我根本看不到表数据中的任何更改。我仍然在调试视图中看到在页面重定向期间定义的变量中存在的数据。
我目前的问题是这样的
用户登录我的网站后,我会检查他的登录标志,这是真的,然后我将他重定向到评论页面。现在我测试的用户的标志为true,而我的Login
方法变为
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
UserController uc = new UserController(model.UserName);
if(uc!=null)
{
if (!uc.Flag)
{
return RedirectToAction("YouWereFlagged", "Account");
}
return RedirectToLocal(returnUrl);
}
}
return View(model);
}
我的YouAreFlag
方法
[HttpPost]
[Authorize]
public ActionResult YouWereFlagged(UserFlagModel model, string url)
{
using (UserController uc = new UserController(User.Identity.Name))
{
uc.Comment = model.Comment;
uc.SaveChanges();
}
return RedirectToLocal(url);
}
我不知道这是否应该拨打SaveChanges
。