2012-04-25 46 views
2

如何用戶註冊到不同的頁面取決於角色重定向取決於角色

我試圖實現以下成沒有任何的運氣賬戶控制器後用戶重定向寄存器之後。

// POST: /Account/Register 
     [AllowAnonymous] 
     [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 */); 
        Roles.AddUserToRole(model.UserName, model.Role); 

        { 
         if (Roles.IsUserInRole("Student")) 
         { 

          return RedirectToAction("create, "Student"); 
         } 
         else if (Roles.IsUserInRole("Teacher")) 
         { 

          return RedirectToAction("create, "Teacher"); 
         } 

         return RedirectToAction("index", "Home"); 
        } 



        List<SelectListItem> list = new List<SelectListItem>(); 
        SelectListItem item; 
        foreach (String role in Roles.GetAllRoles()) 
        { 
         item = new SelectListItem { Text = role, Value = role }; 
         list.Add(item); 
        } 

        ViewBag.roleList = (IEnumerable<SelectListItem>)list; 







        ModelState.AddModelError("", ErrorCodeToString(createStatus)); 




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

任何幫助或建議,歡迎

+0

您使用的是什麼類型的會員供應商?視窗?自定義? – mirezus 2012-04-25 21:27:42

+0

Windows成員資格 – 2012-04-25 21:36:50

回答

2

新視圖,創建並添加以下代碼,

@{ 
     ViewBag.Title = "CreateProfilePage"; 
    } 

    <h2>CreateProfilePage</h2> 



    @if (User.IsInRole("Student")) 
    { 




     <div> @Html.ActionLink("Create Landlord Profile", "Create", "Student") </div> 




    } 


     @if (User.IsInRole("Teacher")) 
    { 


     <div> @Html.ActionLink("Create Teacher Profile", "Create", "Teacher") </div> 

而且重定向在帳戶控制寄存器改爲新視圖。

// POST: /Account/Register 
     [AllowAnonymous] 
     [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 */); 
        Roles.AddUserToRole(model.UserName, model.Role); 
        /////changed here/// return RedirectToAction("CreateProfilePage", "Property"); 
       } 
       else 
       { 


        List<SelectListItem> list = new List<SelectListItem>(); 
        SelectListItem item; 
        foreach (String role in Roles.GetAllRoles()) 
        { 
         item = new SelectListItem { Text = role, Value = role }; 
         list.Add(item); 
        } 

        ViewBag.roleList = (IEnumerable<SelectListItem>)list; 







        ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
       } 
      } 

該代碼只顯示一個鏈接,取決於登錄用戶的角色。