我有一个静态函数,我需要用参数调用特定的控制器/动作并获得结果。 怎么办呢?
答案 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.
}