I haven't done much work with web forms to be honest so I'm probably not the best person to answer how it all compares - I tend to just drop a report control in then code the backend for the report and its data

.
I think the fact it separates the controller out more is really useful. So you'll end up with say a product controller class, with functions for adding/editing products. You can override these functions and redirect users to different views (HTML pages) given certain conditions.. it just gives you much greater control of how the website works and stops you having to code all this logic in individual aspx.cs pages which would become messy over time.
I still really like MVC so I'll be sticking with it. I do need to learn ASP.NET MVC more though too - it's on my big list of things to do.
May be worth a read:
http://hypertrends.com/net/2010/03/08/why-microsoft-asp-net-mvc-framework/
http://www.kevinwilliampang.com/2009/04/21/should-you-use-asp-net-mvc/
edit: here's something I pulled out of the template ASP.NET MVC files, the LogOn function (what I imagine gets called at some point after a form is posted to say
http://127.0.0.1/Account/LogOn) in the AccountController class:
PHP:
[NonAction]
[AcceptVerbs(HttpVerbs.Post)]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
Justification = "Needs to take same parameter type as Controller.Redirect()")]
public ActionResult LogOn(string userName, string password, bool rememberMe, string returnUrl)
{
if (!ValidateLogOn(userName, password))
{
return View();
}
FormsAuth.SignIn(userName, rememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
If the user cannot be validated (bad username/password) it shows the logon page again (return View(); returns the default view for the LogOn function). If they provide a correct username/password and a return URL is specified then they are redirected to the return URL, else they are redirected back to the home page.
This is all done outside of logon.aspx.cs (in the web forms sense); there's no HTML involved in this file it's just controlling what happens in certain situations. But it's all in one place; you don't need to go hunting around in all the "aspx.cs" files to make changes to what happens, you can do it all in these controller classes.
I'm sure it also goes a long way to the
open/closed principle -
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification - the logon files need not be touched once implemented because all of this logic is done at a higher level.
Maybe you decide that if the user is is connecting from a local IP address you display an alternative logon form (a weak example but an example all the same

) your controller can switch the user to the new logon HTML without the old one being any the wiser, thus keeping is simple.