2013-08-16 40 views
-1

我創造MVC4一個網站,這是我第一次使用MVC在.NET中,我sussed出記錄和登記。我有這種情況:MVC4 C#會員註冊角色上的按鈕點擊

當用戶在我希望將他們引導到註冊頁面之前,他們點擊註冊部分的具體內容時,該網站具有角色'A'和角色'B'部分,我將他們引導至註冊頁面。不過,我希望註冊頁面根據他們點擊的註冊按鈕自動定義他們的角色。

所以用戶點擊按鈕「A」註冊時它們將被分配的角色「A」,並且當代理「B」寄存器它們被自動分配的角色「B」。我想避免讓變量阻止人們重寫選擇。

+0

你有什麼迄今所做?你需要提供一些代碼。 – ataravati

回答

1

有很多的方法可以如何實現它。例如:

添加bool IsAgentARegisterModel classAccountModels.cs

public class RegisterModel 
    { 
     [Required] 
     public string UserName { get; set; } 

     [Required] 
     [DataType(DataType.Password)] 
     public string Password { get; set; } 

     [DataType(DataType.Password)] 
     public string ConfirmPassword { get; set; } 

     public bool IsAgentA {get; set;} 
    } 

添加單選按鈕在你Registration ViewIsAgentA(是 - 代理A,否 - 劑B)。我不會在這裏寫。

這修改Register ActionResultAccountController,具體如下:

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public ActionResult Register(RegisterModel model) 
{ 
    if (ModelState.IsValid) 
    { 
       try 
       { 
        WebSecurity.CreateUserAndAccount(model.UserName, model.Password); 
        WebSecurity.Login(model.UserName, model.Password); 

        if (model.IsAgentA) 
        { 
        Roles.AddUserToRole(model.UserName, "Role A"); // user in role A 
        } 
        else 
        { 
        Roles.AddUserToRole(model.UserName, "Role B"); // user in role B 
        } 

        return RedirectToAction("Index", "Home"); 
       } 
       catch (MembershipCreateUserException e) 
       { 
        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); 
       } 
      } 

      return View(model); 
     } 
+0

謝謝你的提示,雖然這是一個答案,我想這樣做自主因此用戶沒有選擇。這是我花了很長時間研究一件事的場景之一。在週末休息之後,我看到了光明。基本上,用戶點擊有部分,它前進到所述控制器,其然後設置會話變量寄存器按鈕,BOBS叔叔:) –