2017-03-01 71 views
0

點擊sumbit按鈕並嘗試調試代碼後,我沒有收到任何錯誤或異常,但數據未保存 我有一個名爲login的類...需要的用戶後,點擊登錄按鈕保存在數據庫中 它的數據這是我的帖子行動:點擊「提交」按鈕後未保存的數據 - MVC 5

[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public ActionResult Login(Login model, string returnUrl) 
    { 
     Context db = new Context(); 
     if (string.IsNullOrEmpty(model.LoginName)) 
     { 
      this.ModelState.AddModelError("LoginName", "this field is required"); 
      return this.View(model); 
     } 
     try 
     { 
      if (ModelState.IsValid) 
      { 

       var user = new Login { LoginName = model.LoginName, LoginPassword = model.LoginPassword }; 
       db.Logins.Add(user); 
       db.SaveChanges(); 
       return Redirect("http://www.google.com"); 
      } 


      else 
       return View(); 

     } 
     catch (Exception e) 
     { 
      return View(); 
     } 
    } 

,這是我的登錄分類:

[Table("Login")] 
public partial class Login 
{ 
    public int ID { get; set; } 

    [StringLength(50)] 
    public string LoginName { get; set; } 

    [StringLength(10)] 
    public string LoginPassword { get; set; } 
} 

,這是我的DbContext:

public class LoginContext : DbContext 
{ 
    public LoginContext() : base("LoginContext ") 
    { 
    } 
    public virtual DbSet<Login> Logins { get; set; } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
    } 
} 

返回到google鏈接後,數據未保存。

+0

您是否設置了斷點並追蹤了您的代碼,以查看它是否執行了您認爲應該執行的操作? –

+0

是的,並正常工作,然後去數據庫檢查保存的數據是否沒有被保存 – Hansy

+0

ID是表中的主鍵,它是一個身份(數據庫是否生成ID)? – garethb

回答

0

嘗試了很多的解決方案後,最後我發現:

  1. 當添加代碼第一個代碼,我不得不做出的DbContext和表名「登錄」的 相同的名稱。

  2. 刪除所有這些,然後添加新的代碼首先「DBContext」和 選擇你的數據庫。

  3. 會發現DBConext會自動添加並且您的表格也會被添加。 這將正常工作。