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

时间:2019-03-18 12:44:06

标签: c# asp.net-core

我创建了一些剃刀页面,并在Post和Get方法中放入了很多代码,即

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

认为它是打开一个包含按钮的详细页面,该按钮应设置特定订单的状态。

我现在需要设置相同的状态,即执行相同的代码,但是从已选择顺序的视图(另一个剃刀页面)中进行。

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

简单明了:如果需要在多个位置共享任何代码,则应将其放入另一个类中,该类可以在需要时用作依赖项。尽管您应该强烈考虑是否需要对HttpContext的依赖关系,但列出的依赖关系看起来并不太太多。大多数时候,您实际上应该只是将一些值传递给方法。例如,如果您需要使用用户ID,则将用户ID传递到帮助程序类的方法中,而不是使帮助程序类依赖于HttpContext并获取ID本身。

如果您仍然有太多依赖关系,那么您很可能会违反单一责任原则。您可能需要多个帮助程序类,或者完全需要其他策略。在不确切知道自己在做什么的情况下,很难说出任何确定的东西。