C# 如果用户不是';在给定的角色中

C# 如果用户不是';在给定的角色中,c#,asp.net-mvc,routing,C#,Asp.net Mvc,Routing,我的应用程序中有三个角色。我有一个索引页,我希望只有未注册的用户才能访问它。因此,当注册用户试图转到索引页时,我的想法是将其重定向到索引页 我试着这样做: public ActionResult Index() { if (User.IsInRole("CompanyAdministrator")) { return RedirectToAction("Index", "CompaniesContr

我的应用程序中有三个角色。我有一个索引页,我希望只有未注册的用户才能访问它。因此,当注册用户试图转到索引页时,我的想法是将其重定向到索引页

我试着这样做:

 public ActionResult Index()
        {
            if (User.IsInRole("CompanyAdministrator"))
            {
                return RedirectToAction("Index", "CompaniesController");

            }
            else if (User.IsInRole("Employee"))
            {
                return RedirectToAction("Index", "EmployeeController");
            }
            return View();
因此,当我以公司管理员的身份登录并尝试返回主页/索引时,我会得到一个

“/”应用程序中出现服务器错误

找不到资源

url如下所示:
http://localhost:49858/CompaniesController

对不起,如果这个问题太主观,我找不到关于这个问题的解释,我自己也解释不了


有什么提示吗?

您不需要
控制器
后缀。只需使用控制器名称,而不使用
控制器
部件

这应该行得通

return RedirectToAction("Index", "Companies");
return RedirectToAction("Index", "Companies");
MVC框架使用
控制器
后缀在应用程序启动时检测所有控制器(注册路由)。除此之外,最终用户(编写代码的用户)通常不需要在任何地方使用完整的类名


显然,(C#6)的名字

您不需要在控制器名称中添加“控制器”。应该是