首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法从控制器A调用控制器B返回ActionResult,同时向B提供特定模型?

有办法从控制器A调用控制器B返回ActionResult,同时向B提供特定模型。可以使用以下方法:

  1. 创建一个公共方法,该方法接受特定模型作为参数,并在控制器B中调用该方法。
代码语言:csharp
复制
public class ControllerB : Controller
{
    public ActionResult MyAction(MyModel model)
    {
        // 处理模型
        return View(model);
    }
}

public class ControllerA : Controller
{
    public ActionResult MyAction()
    {
        MyModel model = new MyModel();
        // 初始化模型
        ControllerB controllerB = new ControllerB();
        return controllerB.MyAction(model);
    }
}
  1. 使用依赖注入将控制器B注入到控制器A中,并在控制器A中调用控制器B的方法。
代码语言:csharp
复制
public class ControllerB : Controller
{
    public ActionResult MyAction(MyModel model)
    {
        // 处理模型
        return View(model);
    }
}

public class ControllerA : Controller
{
    private ControllerB _controllerB;

    public ControllerA(ControllerB controllerB)
    {
        _controllerB = controllerB;
    }

    public ActionResult MyAction()
    {
        MyModel model = new MyModel();
        // 初始化模型
        return _controllerB.MyAction(model);
    }
}
  1. 使用接口将控制器B的方法抽象出来,并在控制器A中注入该接口。
代码语言:csharp
复制
public interface IControllerB
{
    ActionResult MyAction(MyModel model);
}

public class ControllerB : Controller, IControllerB
{
    public ActionResult MyAction(MyModel model)
    {
        // 处理模型
        return View(model);
    }
}

public class ControllerA : Controller
{
    private IControllerB _controllerB;

    public ControllerA(IControllerB controllerB)
    {
        _controllerB = controllerB;
    }

    public ActionResult MyAction()
    {
        MyModel model = new MyModel();
        // 初始化模型
        return _controllerB.MyAction(model);
    }
}

这些方法可以实现从控制器A调用控制器B返回ActionResult,同时向B提供特定模型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券