控制器类中所有方法的通用代码

斯凯博尼韦尔

我有 10 个控制器使用相同的代码块,但我不知道如何编写一次代码并在任何地方使用它。

我必须定义一个名为的对象:

requiredStructuralSupportParameters

,然后在对象中设置 3 个字段。

这是使用它的控制器方法之一:

public class StructureController : Controller
{   
    public IActionResult Index()
    {

        var requiredStructuralSupportParameters = new Structure.RequiredInfo()
        {
            Steel = "1500y",
            Concrete = "5500l",
            Rebar = "95000y"
        };

        var response = callToAPI(requiredStructuralSupportParameters);

        return response.Results;
    }
}

我曾尝试将该代码取出并将其放在控制器类的顶部并将其公开,但随后我的控制器无法看到它并且我收到 nullreferenceexception 错误。

所以它只在我直接把它放在控制器方法中时才有效。

有没有办法做到这一点,以便所有控制器都可以重用相同的代码块?

迪兹格
public class StructureController : Controller
{   
    protected YourType _requiredStructuralSupportParameters;

    public StructureController()
    {
        this._requiredStructuralSupportParameters = new Structure.RequiredInfo()
        {
            Steel = "1500y",
            Concrete = "5500l",
            Rebar = "95000y"
        };
    }
}

然后让您的其他控制器继承您的StructureController

public SomeController : StructureController{

   public IActionResult Index() {
      var response = callToAPI(this._requiredStructuralSupportParameters);

      return response.Results;
   }
}

还没有测试过,但我希望你有一个想法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Laravel 中所有控制器的所有方法中传递对象

控制器中所有方法的Spring AOP切入点

类中所有方法的抽象方法装饰器

IntelliJ - 是否可以向控制器类的所有方法添加自定义注释,例如@SecurityCheck?

Swift 类中所有方法的 LLDB 断点

获取类中所有方法的属性列表

laravel在控制器中的所有方法之间共享变量

对CakePHP控制器中的所有方法重用一个视图

根据在codeigniter中选择的控制器名称显示所有方法名称

spring-mvc中所有控制器的@ExceptionHandler

控制器中没有方法错误

用rspec测试控制器的私有方法

包中所有方法的AOP

拦截groovy中所有元类的所有方法调用

所有控制器的通用索引操作

具有继承.NET的通用控制器类

SpringMVC在控制器方法之间放置通用代码的位置

如何在控制器中一次声明变量,并将其应用于控制器的所有方法

使所有控制器方法异步

从所有控制器调用方法

我如何从Mono中的c ++获取某个类中所有方法的列表?

您可以提取类中所有方法的签名吗?

MPVolumeView路线列表支持所有方向,并忽略基础视图控制器

记录所有的剩余控制器类春季

所有其他 API 控制器的 Symfony 4 基本控制器类

我的所有方法都需要通用包装,而无需复制代码(C#)

手动调用带参数的控制器方法,但仍有方法注入

Express中间件应用于所有方法,而不是应用于控制器中定义的方法

控制器中所有JavaFX FXML对象为空