I have noticed what Html.BeginForm() method encodes supplied routeValues into action attribute of FORM tag. This works well with POST method. But if method is GET all parameters in action URL are stripped by browser (tested on IE8 and Firefox 3.0.7).
For example, this code in view
<%
using (Html.BeginForm("TestAction", "TestController", new { test = 123 },
FormMethod.Get))
{
Response.Write("<input type='submit'>");
};
%>
gives such HTML
<form action="/TestController/TestAction?test=123" method="get">
<input type='submit'>
</form>
But after submitting the form URL became /TestController/TestAction not /TestController/TestAction?test=123 (parameter is lost).
Now I use group of Html.Hidden() calls instead of routeValues parameter but I am interested is there another workaround? Should it be considered as a bug in MVC which will be fixed sometime?