我创建了一些剃刀页面,并在Post和Get方法中放入了很多代码,即
public async Task<IActionResult> OnPostSaveSetStatusAsync(int? id) {
}
认为它是打开一个包含按钮的详细页面,该按钮应设置特定订单的状态。
我现在需要设置相同的状态,即执行相同的代码,但是从已选择顺序的视图(另一个剃刀页面)中进行。
如果我将所有代码都放在helper类中,则有很多方法参数需要发送。即sqlcontexts,cache,httcontext等。这还是一个好方法吗?
...还是我应该在原始的razorpage中创建方法并从所有其他地方调用它? (例如类中的辅助方法)
谢谢
答案 0 :(得分:1)
简单明了:如果需要在多个位置共享任何代码,则应将其放入另一个类中,该类可以在需要时用作依赖项。尽管您应该强烈考虑是否需要对HttpContext
的依赖关系,但列出的依赖关系看起来并不太太多。大多数时候,您实际上应该只是将一些值传递给方法。例如,如果您需要使用用户ID,则将用户ID传递到帮助程序类的方法中,而不是使帮助程序类依赖于HttpContext
并获取ID本身。
如果您仍然有太多依赖关系,那么您很可能会违反单一责任原则。您可能需要多个帮助程序类,或者完全需要其他策略。在不确切知道自己在做什么的情况下,很难说出任何确定的东西。