In my opinion, this is due to the fact that there is a one-to-one relationship between the browser request and the controller that processes it, as well as the model and the subsequent presentation that the model displays.
On Windows Forms, you do not have such a mapping. You can have several things that trigger an event, and you can have several views in the model. Since there is no request-response pipeline, as in an HTTP request (one request, one response), you should handle things like registering multiple views (which you do not need to do in ASP.NET MVC, there is one view that is dictated by by the controller), as well as several ways to specify the same input on the controller (again, only one way in ASP.NET MVC, and that through the request, although this is a slight comparison to the first point).
source share