首页 > 解决方案 > 是否可以在设置页面上的 .cshtml.cs 文件中执行 OnPost() 方法之前执行特定的代码块?

问题描述

我想确定是否应该允许OnPost()执行的页面数量很多。

OnPost()我想知道您是否可以/在发生可能阻止OnPost()调用之前执行代码块的最佳方法是什么?

我知道您可以在每个页面的顶部进行检查并调用一些对象/类方法来指示,但是在针对特定页面集OnPost()执行之前还有其他方法可以执行吗?OnPost()

(使用 Razor 页面,而不是 MVC)

标签: c#asp.net-corepost.net-corerazor-pages

解决方案


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

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
    }
}

https://www.learnrazorpages.com/razor-pages/filters


推荐阅读