Look at what is happening with the Payroll on Create or Edit. A HTTPGet is being done, then a HTTP post for the same action method is being done with the ViewModel being posted back to the action method. In your case as the viewmodel is posted back to the action method, you have access to all properties that are populated by the view on the VM object that was passed into the controller from the view, and you can update the VM and return the viewmodel to the view, if that's what you need to do.
https://github.com/darnold924/PublishingCompany/blob/master/PublishingCompany/Models/PayRollVM.cs
Understand method overloading. It's being used in the examples.
https://www.geeksforgeeks.org/c-sharp-method-overloading/
Understand the models in MVC...
https://deviq.com/terms/kinds-of-models
Understand the viewmodel..
https://www.dotnettricks.com/learn/mvc/understanding-viewmodel-in-aspnet-mvc
project out on GitHub..