2012-06-17 79 views
0

我想在註冊後爲任何用戶分配一行表格。該表有一個名爲UserId的列和其他一些列。我想將此表的UserId設置爲新註冊用戶的UserId,並將其他值設置爲0.我想在Register函數中執行此操作。但是我不知道如何訪問帳戶控制器的註冊功能中的UserID。 我使用默認帳戶控制器及其功能。寄存器功能的代碼是:如何在asp.net mvc3中訪問帳戶控制器中的UserId?

[HttpPost] 
     public ActionResult Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       // Attempt to register the user 
       MembershipCreateStatus createStatus; 
       Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus); 

       if (createStatus == MembershipCreateStatus.Success) 
       { 
        FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
        return RedirectToAction("Index", "Home"); 
       } 
       else 
       { 
        ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
       } 
      } 

      // If we got this far, something failed, redisplay form 
      return View(model); 
     } 
+0

發佈您的代碼。 –

+0

註冊函數中的代碼? – starrr

回答

2

假設用戶是你的模型,控制器應該是這樣的

class Account:Controller{ 

[HttpPost] 
ActionResult Register(User myModel){ 

var myUserId = myModel.UserId; 

} 
} 

和你的觀點應該是這樣的

@model User 
+0

@ pollirrata謝謝你的回答,但我在我的項目中使用了默認的Registr函數。我添加了上面的代碼,而在模型類中,只有UserName,Password,Email和ConfirmPassword。 – starrr

+0

噢好吧..如果你想從MembershipProvider訪問用戶信息,你可以使用HttpContext.User.Identity對象 – pollirrata

1
啓動

如果您將用戶創建時爲用戶生成的唯一標識符稱爲UserId,則可以將其發現爲:

[HttpPost] 
public ActionResult Register(RegisterModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     // Attempt to register the user 
     MembershipCreateStatus createStatus; 
     var user = Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus); 

     if (createStatus == MembershipCreateStatus.Success) 
     { 
      var userId = (Guid) user.ProviderUserKey; //The unique identifier just created 

      FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
      return RedirectToAction("Index", "Home"); 
     } 
     else 
     { 
      ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
     } 
    } 

    // If we got this far, something failed, redisplay form 
    return View(model); 
} 
相關問題