However, I have observed that users are directly accessing controllers such as View Details and Add New User, thereby circumventing the Home Controller. This results in the static variables not being initialized properly.
Well, users are going to use direct links to sub pages the have, or access your site in any way the like, so I'm not sure redirecting to home page would be good user experience, unless we are talking about redirecting to login page unauthorized users.
I'm not sure what do you need those static variables for, however what I would suggest is to create some class holding these, inject it as a Singleton instance using your DI container and, if needed, fetch all your metadata needed using lazy loading, for example using Lazy<> https://learn.microsoft.com/en-gb/dotnet/api/system.lazy-1?view=net-8.0
How to inject a singleton: https://learn.microsoft.com/en-gb/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-8.0#service-registration-methods