c# - 想从类中调用 Controller 方法并在不向 Controller 发出请求的情况下获取 Controller 上下文?

标签 c# asp.net-mvc asp.net-mvc-4

我想从类中调用 Controller 方法并获取 Controller 上下文而不向 Controller 发出请求。有哪些可行的方法?

我可以通过创建 Controller 类的对象来调用方法,但我无法获取 Controller 的上下文。

var controllerObj = new HomeController()
controllerObj.methodA();

并且在 methodA 中请求上下文不可用。

最佳答案

使用 DependencyResolver 获取类中 Controller 的实例.

public class Example
{    
    public static void CallActionMethod()
    {
        var controller = DependencyResolver.Current.GetService<AboutController>();
        controller.ControllerContext = new ControllerContext(System.Web.HttpContext.Current
        .Request.RequestContext, controller);    
        controller.Index();    
    }  
}

Reference

关于c# - 想从类中调用 Controller 方法并在不向 Controller 发出请求的情况下获取 Controller 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47668124/

相关文章:

asp.net-mvc - 使用 IIS 基本身份验证的 OWIN 身份验证

c# - 如何更改 @Html.DisplayFor 项目名称?

c# - 使用 Entity Framework 将数据保存在一个事务中的多个表中

c# - WPF 错误 : Property elements cannot be in the middle of an element's content. 它们必须在内容之前或之后

c# - Azure Web 作业中的 LocalReport 呈现

c# - For 循环增加文本框 ID。 C# 窗体

c# - ASP.NET MVC 值不能为空。在下拉列表上

c# - 如何将 JSON 复制并粘贴到 Eclipse 中并创建 .java?

asp.net-mvc - 在 ASP.NET MVC 中防止 NullReferenceException 的正确模式是什么

asp.net-mvc - 如何将自定义数据属性和类添加到 `@Html.EditorFor` ?