从类中的方法重定向到控制器中的操作结果

时间:2014-05-07 17:53:24

标签: asp.net-mvc

我有一个mvc应用程序,当用户通过身份验证时, 从类中调用一个方法来确定用户的类型。

我想从类中的方法重定向到控制器中的动作结果。

如何从类中的方法重定向到控制器中的操作结果?

2 个答案:

答案 0 :(得分:0)

可能有充分的理由说明你为什么要这样做,但我想为你建议一个替代方案。 我建议你根据类中方法的结果重定向到一个动作,而不是在方法本身中进行重定向。

的伪代码:

public ActionResult Index()
{
 var tmp = new YourClass();

if(tmp.UserType().Equals("Admin")
{
    return RedirectToAction("Admin", "Home");
}
if(tmp.UserType().Equals("User"))
{
    return RedirectToAction("User","Home");
}
}

答案 1 :(得分:-1)

首先,我认为从你想要的类中调用控制器动作不是一个好习惯。 您的类将与MVC控制器紧密耦合。 但是这样做是可行的:

    var context = new RequestContext(
    new HttpContextWrapper(System.Web.HttpContext.Current), 
    new RouteData());
var urlHelper = new UrlHelper(context);
var url = urlHelper.Action("Index", new { OtherParm = "other value" });
System.Web.HttpContext.Current.Response.Redirect(url);

此示例来自this answer