从 ViewModel 调用 CORE Razor 页面中的方法

Call a method in a CORE Razor Page from a ViewModel

我的剃刀页面

   public class IndexModel : BaseModel {
        public void OnGet() {
            BaseModelMethod();
        }
        public void LocalMethod() {}
   }

调用基础 ViewModel 中的方法

public class BaseModel : PageModel {
    public void BaseModelMethod() {
        // Do stuff 
    }
}

有没有办法在调用 Razor 页面中回调 LocalMethod 的实例?

您必须将函数定义为虚函数。您的 BaseModel 必须具有以下形式:

public class BaseModel : PageModel
{
    public void BaseModelMethod()
    {
        LocalMethod();
    }

    public virtual void LocalMethod()
    {

    }
}

如您所见,我创建了虚函数,以便我们知道我们将调用哪种方法。

现在我们可以像这样定义我们自己的 LocalMethod 版本:

public class IndexModel : BaseModel
{
    public void OnGet()
    {
        BaseModelMethod();
    }

    public override void LocalMethod()
    {
        base.LocalMethod();
    }
}