C# 在一组页面上的.cshtml.cs文件中执行OnPost()方法之前,是否可以执行特定的代码块?

C# 在一组页面上的.cshtml.cs文件中执行OnPost()方法之前,是否可以执行特定的代码块?,c#,asp.net-core,post,.net-core,razor-pages,C#,Asp.net Core,Post,.net Core,Razor Pages,我想确定是否允许执行OnPost() 我想知道您是否可以/在执行OnPost()之前执行代码块以潜在地阻止OnPost()调用的最佳方式是什么 我知道您可以在每个OnPost()的顶部进行检查,并调用某个对象/类方法进行口述,但是在对特定的一组页面执行OnPost()之前,是否还有其他方法可以执行 (使用Razor Pages,而不是MVC)您可以在选择处理程序方法之后,但在执行之前,使用筛选器执行代码: public override void OnPageHandlerSelected(Pa

我想确定是否允许执行
OnPost()

我想知道您是否可以/在执行
OnPost()
之前执行代码块以潜在地阻止
OnPost()
调用的最佳方式是什么

我知道您可以在每个
OnPost()
的顶部进行检查,并调用某个对象/类方法进行口述,但是在对特定的一组页面执行
OnPost()
之前,是否还有其他方法可以执行


(使用Razor Pages,而不是MVC)

您可以在选择处理程序方法之后,但在执行之前,使用筛选器执行代码:

public override void OnPageHandlerSelected(PageHandlerSelectedContext context)
{
    if(context.HandlerMethod.MethodInfo.Name == nameof(OnPost))
    {
        // code placed here will only execute if the OnPost() method has been selected
    }
}

您正在寻找的是中间件,您可以在其中将功能插入到处理管道中,请参见示例。如果这是关于是否允许访问,我建议您使用内置授权堆栈来处理此问题。