无法在 MVC 5 中使用 RedirectToAction("RedirectToDefault")
Can't RedirectToAction("RedirectToDefault") in MVC 5
我正在使用 MVC 5 关注 this tutorial。但是我不能 return RedirectToAction("RedirectToDefault")
;它只是停留在表单登录,并没有发生真假密码
public ActionResult RedirectToDefault()
{
String[] roles = Roles.GetRolesForUser();
if (roles.Contains("Administrator"))
{
return RedirectToAction("Index", "Admin");
}
else if (roles.Contains("Dealer"))
{
return RedirectToAction("Index", "Dealer");
}
else if (roles.Contains("PublicUser"))
{
return RedirectToAction("Index", "PublicUser");
}
else
{
return RedirectToAction("Index");
}
}
在 MyRoleProvider 中 class
public override string[] GetRolesForUser(string username)
{
using (RoleAccessEntities objContext = new RoleAccessEntities())
{
var objUser = objContext.Users.FirstOrDefault(x => x.AppUserName == username);
if (objUser == null)
{
return null;
}
else
{
string[] ret = objContext.Roles.Select(x => x.RoleName).ToArray();
return ret;
}
}
}
我试了return Redirect("/Home/RedirectToDefault");
,效果很好。
在重定向中使用完整地址“/controller/action”。
我正在使用 MVC 5 关注 this tutorial。但是我不能 return RedirectToAction("RedirectToDefault")
;它只是停留在表单登录,并没有发生真假密码
public ActionResult RedirectToDefault()
{
String[] roles = Roles.GetRolesForUser();
if (roles.Contains("Administrator"))
{
return RedirectToAction("Index", "Admin");
}
else if (roles.Contains("Dealer"))
{
return RedirectToAction("Index", "Dealer");
}
else if (roles.Contains("PublicUser"))
{
return RedirectToAction("Index", "PublicUser");
}
else
{
return RedirectToAction("Index");
}
}
在 MyRoleProvider 中 class
public override string[] GetRolesForUser(string username)
{
using (RoleAccessEntities objContext = new RoleAccessEntities())
{
var objUser = objContext.Users.FirstOrDefault(x => x.AppUserName == username);
if (objUser == null)
{
return null;
}
else
{
string[] ret = objContext.Roles.Select(x => x.RoleName).ToArray();
return ret;
}
}
}
我试了return Redirect("/Home/RedirectToDefault");
,效果很好。
在重定向中使用完整地址“/controller/action”。