I'm not sure why you insist on using Razor Pages, when there is MVC (Model-View-Controller).
You should use the MVC pattern instead. You get the same razor syntax but decoupled.
Razor Pages were introduced as a form of successor to WebForms (which itself tried to mimic Windows Forms, which isn't about decoupling neither).
If we go a few years back in history, MVVM was to use the full power of WPF's Two-Way Model binding, which acts as a separate layer between the UI and Application layer where one can put presentation logic in (logic tightly coupled to the Presentation, which is an UI concern rather than application layer which is decoupled from the UI).
For that reasons the MVVM's ViewModels also have (additionally to properties for Model Binding), things like Commands and may be Navigation aware (i.e. via Prism's INavigationAware
interfaces).
In this context, ViewModels aren't of much value in server-sided web applications, because HTTP by itself, is stateless where ViewModels maintain a state.
Thus the ViewModels in MVC are simply reduced to DTOs (Data Transfer Objects), which has basic validation (through validation attributes). ViewModels in MVC Applications don't have any presentation logic, due to the fact its rendered into HTML and most presentation Logic happens outside via JavaScript (what happens when a button is clicked, how to format a date or currency for a user).
That being said, you don't really need full-fleged ViewModels in an ASP.NET Core application, at least not for the server-sided part. However, if you are using a client-sided technology (Angular, Vue.js, React) you may utilize ViewModels to enhance the functionality and decouple it from the View.
In fact, angular components are pretty much ViewModels and fulfill the same task as ViewModels in MVVM pattern do (one can inject services into it, has 1-way or 2-way bindings, input validation and one puts presentation logic in them).
TL;DR: You don't really need ViewModels as they are defined in MVVM, just DTO-like classes to make consuming them in the (Razor)View Template easier. And don't use Razor Pages for decoupling.