如何从模型c#类方法中调用控制器动作方法。
if (dic_fare.Count == 0)
{
}
public ActionResult Index()
{
}
答案 0 :(得分:3)
您在问错问题。
控制器是通过HTTP请求通过ASP.NET MVC管道而不是直接从代码中调用的。
如果您确实想要,但您不应该这样做,则可以创建控制器的实例(var controller = new YourController(/* dependencies */)
)并在其上调用所需的操作方法({{1 }})。但是,很可能您会丢失各种依赖项(var result = controller.Index()
,ControllerContext
),并且您无法真正解析响应。
相反,重构代码。将您想要的代码移到另一个类,然后从您的控制器(以及您现在要从中调用该控制器的代码)中调用该类。
答案 1 :(得分:2)
需要时,您的设计已关闭。
要调用Action,您首先必须实例化一个Controller,该Controller希望在HttpContext中运行,并具有其他各种期望。
要做的是排除要使用的业务逻辑,并将其放在单独的类中,例如在项目的\Services
文件夹中。