我有一个mvc应用程序,当用户通过身份验证时, 从类中调用一个方法来确定用户的类型。
我想从类中的方法重定向到控制器中的动作结果。
如何从类中的方法重定向到控制器中的操作结果?
答案 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