所以这就是我想要做的。我在/ Admin / Vendors / Index有一个页面。如果某个用户处于某个角色并且他们转到此页面,我希望将他们重定向到另一个只显示某些数据的视图。
这就是我所拥有的:
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
。
我该如何解决?
答案 0 :(得分:3)
您应该使用获取视图名称的View()
构造函数,在这种情况下,您可以明确说明要返回的视图,或使用RedirectToAction
方法重定向到SpecialIndex
行动。请参阅documentation
public ActionResult Index()
{
if (User.IsInRole("Special User"))
{
return this.RedirectToAction("SpecialIndex");
}
return View();
}
答案 1 :(得分:1)
检查User.IsInRole("Special User")
它会解决您的问题。无论哪种方式,你都会为它返回一个视图。