Mvc3 - 如何从静态函数调用动作

时间:2013-02-05 22:21:33

标签: c# asp.net-mvc

我有一个静态函数,我需要用参数调用特定的控制器/动作并获得结果。 怎么办呢?

1 个答案:

答案 0 :(得分:2)

您可以创建该特定控制器的实例,然后使用实例的Execute()方法来执行控制器。

我在Application_Error处理程序中做了类似的事情:

var routeData = new RouteData();
routeData.Values["controller"] = "Error";
routeData.Values["action"] = "General";
routeData.Values["exception"] = exception;

IController errorsController = new ErrorController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
try
{
    errorsController.Execute(rc);
}
catch (Exception ex)
{
    // Appropriate error handling.
}