如何从其他razorpages访问razorpages中的代码

问题描述 投票:0回答:1

我创建了一些razorpages并且已经在Post和Get方法中加入了大量代码,即

public async Task<IActionResult> OnPostSaveSetStatusAsync(int? id) {
}

将其视为打开包含应在特定订单上设置状态的按钮的详细页面。

我现在需要设置相同的状态,即执行相同的代码,但是从具有所选顺序的视图(另一个razorpage)执行。

如果我将所有代码放在帮助程序类中,则需要发送许多方法参数。即sqlcontexts,cache,httcontext等,这是一个很好的方法吗?

...或者我应该在原始razorpage中创建方法并从其他所有地方调用它? (比如类中的辅助方法)

谢谢

c# asp.net-core
1个回答
1
投票

简单明了:如果需要在多个地方共享任何代码,它应该进入另一个可以在需要时用作依赖的类。列出的依赖关系似乎不太多,但你应该强烈考虑是否需要依赖HttpContext。大多数情况下,你应该只是将一些值传递给方法。例如,如果您需要使用用户标识,请将用户标识传递给助手类中的方法,而不是让辅助类依赖于HttpContext并获取标识本身。

如果你仍然有太多的依赖关系,那么你可能会违反单一责任原则。您可能需要多个辅助类或完全不同的策略。如果不确切知道自己在做什么,就很难说清楚。

© www.soinside.com 2019 - 2024. All rights reserved.