Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 根据角色在注册后重定向_Asp.net Mvc 3_Entity Framework 4 - Fatal编程技术网

Asp.net mvc 3 根据角色在注册后重定向

Asp.net mvc 3 根据角色在注册后重定向,asp.net-mvc-3,entity-framework-4,Asp.net Mvc 3,Entity Framework 4,如何在用户注册到不同页面后根据角色重定向用户 我已尝试在帐户控制器中实现以下内容,但没有任何运气 // POST: /Account/Register [AllowAnonymous] [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) {

如何在用户注册到不同页面后根据角色重定向用户

我已尝试在帐户控制器中实现以下内容,但没有任何运气

// 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);
                 }
             }
         }
//POST:/Account/Register
[异名]
[HttpPost]
公共操作结果寄存器(RegisterModel模型)
{
if(ModelState.IsValid)
{
//尝试注册用户
成员资格createStatus createStatus;
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(“学生”))
{
返回重定向到操作(“创建”,“学生”);
}
else if(Roles.IsUserInRole(“教师”))
{
返回重定向到操作(“创建”、“教师”);
}
返回重定向到操作(“索引”、“主页”);
}
列表=新列表();
选择ListItem项目;
foreach(Roles.GetAllRoles()中的字符串角色)
{
item=new SelectListItem{Text=role,Value=role};
列表。添加(项目);
}
ViewBag.roleList=(IEnumerable)列表;
AddModelError(“,ErrorCodeToString(createStatus));
//如果我们走到这一步,有些东西失败了,重新显示形式
返回视图(模型);
}
}
}

欢迎任何帮助或建议

创建了一个新视图,并添加了以下代码

@{
        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> 
@{
ViewBag.Title=“CreateProfilePage”;
}
CreateProfilePage
@if(User.IsInRole(“学生”))
{  
@ActionLink(“创建房东档案”、“创建”、“学生”)
} 
@if(User.IsInRole(“教师”))
{  
@ActionLink(“创建教师档案”、“创建”、“教师”)
此外,帐户控制器中寄存器的重定向也更改为新视图

// 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));
                }
            }
//POST:/Account/Register
[异名]
[HttpPost]
公共操作结果寄存器(RegisterModel模型)
{
if(ModelState.IsValid)
{
//尝试注册用户
成员资格createStatus createStatus;
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);
/////此处更改///返回重定向到操作(“CreateProfilePage”、“Property”);
}
其他的
{
列表=新列表();
选择ListItem项目;
foreach(Roles.GetAllRoles()中的字符串角色)
{
item=new SelectListItem{Text=role,Value=role};
列表。添加(项目);
}
ViewBag.roleList=(IEnumerable)列表;
AddModelError(“,ErrorCodeToString(createStatus));
}
}

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

您使用的是哪种成员资格提供商?Windows?自定义?