0

这就是我想做的。我在 /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.

我该如何解决?

4

2 回答 2

3

您应该使用View()获取视图名称的构造函数,在这种情况下,您可以明确说明要返回哪个视图,或者使用该RedirectToAction方法重定向到SpecialIndex操作。查看文档

public ActionResult Index()
{
    if (User.IsInRole("Special User"))
    {
        return this.RedirectToAction("SpecialIndex");
    }
    return View();
}

于 2013-01-21T02:59:52.043 回答
1

检查User.IsInRole("Special User")它会解决你的问题。无论哪种方式,您都在为它返回一个视图。

于 2013-01-22T19:07:41.597 回答