Html.BeginFormreceive the names of the action and the controller :
Html.BeginForm("Edit", "Home")
Html.BeginRouteFormget the name of a route, if you have named one:
Html.BeginRouteForm("MyRoute")
About when to use each one, if you prefer not to follow the convention that /controller/actionyou can define your own structure for urls, in that case you would create your own routes and name them so that you can easily reference each one.
The difference is the parameters they take
Html.BeginForm
receive the names of the action and the controller :Html.BeginRouteForm
get the name of a route, if you have named one:About when to use each one, if you prefer not to follow the convention that
/controller/action
you can define your own structure for urls, in that case you would create your own routes and name them so that you can easily reference each one.