I have noticed what Html.BeginForm() method encodes supplied routeValues into action attribute of FORM tag. This works well with POST meth
As you can see, the generated HTML is "correct", and has the semantic you want, so this is not a server-side issue, but a client-side one. The browser in this case is stripping away the query part from the action URL, while you expected it to append to the query instead. If you read the specification, the action is not supposed to contain a query (it is an URI, not an URL), so in fact you hit a "limitation" of the HTTP specification.
You are directed to the bare url with no query, because in the HTML you have there is nothing to submit. Try giving a name and a value to the submit field, or add a hidden field, you'll see that the parameters get transmitted in the query.
You should definitely use hidden fields in this case.