2012-04-25 45 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)); 
       } 
      } 

该代码只显示一个链接,取决于登录用户的角色。