我有一个类(在.net 4.5上的mvc4 razor项目中)并希望在其上处理重定向方法,并且不希望从控制器类继承。 我该如何处理?它会返回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();
}
答案 0 :(得分:1)
您可以在任何地方使用此代码,并且您不需要UrlHelper或访问上下文,因此您不需要继承Controller类。
RouteValueDictionary rvd = new RouteValueDictionary
{
{"controller", "Profile"},
{"action", "Users"},
{"area", ""}
};
return new RedirectToRouteResult(rvd);
答案 1 :(得分:0)
控制器的RedirectToAction
方法只是创建RedirectToRouteResult
的助手,您可以在班上自己创建它:
public class SecuritySrv
{
public ActionResult Redirect()
{
RouteValueDictionary routeValues = new RouteValueDictionary();
routeValues["action"] = "Logout";
routeValues["controller"] = "Account";
routeValues["area"] = "";
return new RedirectToRouteResult(routeValues);
}
}
并按照您想要的方式从您的控制器调用此方法。