如何根据用户重定向到单独的视图
本文关键字:单独 视图 重定向 何根 用户 | 更新日期: 2023-09-27 17:55:06
这就是我想做的。我有一个页面在/Admin/供应商/索引。如果一个用户在某个角色中,他们进入这个页面,我希望他们被重定向到另一个视图,只显示某些数据。
我有:
public ActionResult Index()
{
if (User.IsInRole("Special User"))
{
SpecialIndex();
}
return View();
}
public ActionResult SpecialIndex()
{
var viewModel = GetSpecialData();
return View(viewModel);
}
所以我认为如果用户在角色中并且它调用SpecialIndex
方法,它将调用该方法并将用户发送到SpecialIndex
视图。
它确实调用SpecialIndex
方法,但是当我调用return View(viewModel)
时,它只是回到Index
方法,并且向用户显示Index
视图而不是SpecialIndex
。
我怎样才能解决这个问题?
您应该使用获取视图名称的View()
构造函数,在这种情况下,您可以具体说明要返回哪个视图,或者使用RedirectToAction
方法重定向到SpecialIndex
操作。参见文档
public ActionResult Index()
{
if (User.IsInRole("Special User"))
{
return this.RedirectToAction("SpecialIndex");
}
return View();
}
检查User.IsInRole("Special User")
,它将解决您的问题。无论哪种方式,您都为它返回一个视图。