有没有办法从常规C#类调用控制器操作,而不是控制器?
到目前为止我发现的所有内容都使用了redirectToAction,但这是控制器专有的。
答案 0 :(得分:2)
控制器是一个类似于任何其他类的类,这意味着你可以这样做:
var homeController = new HomeController();
(假设你有你的项目引用设置,我在我的例子中不包括命名空间,因为我不知道你的是什么)
因此,您可以通过homeController
变量执行该控制器的方法。但是,正如评论中指出的那样,这根本不是一个好的设计。我强烈建议你不要这样做。
应该从其他控制器或Web请求调用控制器。
答案 1 :(得分:0)
如果你想使用在某个地方用控制器动作编写的相同代码,我认为更好的选择是在Business层中有一个C#类,然后使用在任何需要时重复使用的相同功能。在控制器动作方法中,也有一个实例化的类,并调用调用的特定函数。
public class BAL.A
{
public void Method(){
/*Implementation here. */
}
}
using BAL;
Public Class HomeCOntroller{
public void Index(){
A objA=new A();
objA.Method();
}
}
我希望这有助于重用功能。