Asp.net mvc 4 如何在custome类中处理ActionResult?

Asp.net mvc 4 如何在custome类中处理ActionResult?,asp.net-mvc-4,Asp.net Mvc 4,我有一个类(在.NET4.5上的MVC4Razor项目中),希望在该类上处理重定向方法,不希望从控制器类继承。 我该如何处理这个问题?在某些情况下,比如日志出游,它会将ActionResult返回给重定向用户 我的主要班级: public class SecuritySrv { public ActionResult Redirect() { return RedirectToAction("Logout", "Account", new { area = ""

我有一个类(在.NET4.5上的MVC4Razor项目中),希望在该类上处理重定向方法,不希望从控制器类继承。 我该如何处理这个问题?在某些情况下,比如日志出游,它会将ActionResult返回给重定向用户

我的主要班级:

public class SecuritySrv 
{
  public ActionResult Redirect()
    {

        return RedirectToAction("Logout", "Account", new { area = "" });
    }
}
我想在一些控制器中使用它,如下所示:

 public ActionResult AccountHome()
    {
      SecuritySrv SecurityService =new SecuritySrv()
       if(.....)
      return SecurityService.Redirect();


     return view();
   }

controller的
RedirectToAction
方法只是创建
RedirectToRouteResult
的助手,您可以在类中自己创建它:

public class SecuritySrv 
{
    public ActionResult Redirect()
    {
        RouteValueDictionary routeValues = new RouteValueDictionary();
        routeValues["action"] = "Logout";
        routeValues["controller"] = "Account";
        routeValues["area"] = "";

        return new RedirectToRouteResult(routeValues);
    }
}

并以您想要的方式从控制器调用此方法。

您可以在任何地方使用此代码,并且不需要UrlHelper或对上下文的访问,因此不需要继承控制器类

        RouteValueDictionary rvd = new RouteValueDictionary
            {
                {"controller", "Profile"}, 
                {"action", "Users"}, 
                {"area", ""}
            };
        return new RedirectToRouteResult(rvd);

visual studio中的“是”无法检测重定向到控制器类中可用的操作