I have the same problem, and in true convention configuration style, I came up with my own convention to use the name Controller + Action for my views.
I use a spark, so this was the case of writing a custom descriptor or using Razor, you write a custom view engine that extends from the standard RazorViewEngine and builds your conventions there. This article gives you an idea of how to do this.
That way, I can have an Index action in the Account controller named AccountIndex.spark (or .cshtml), and I can still return View () or PartialView () from my action without specifying the name of the view.
source share