I'm creating a form with .NET MVC and when I pass arguments in @BeginForm, it uses get no matter what I do.

This is what I have so far:

```
@using (Html.BeginForm("QueryIndexUpdate", "Analysis", FormMethod.Post)){}

```

I've tried removing ", FormMethod.Post" to see what would happen, and still uses GET.
When I use BeginForm() with not arguments, it uses POST, but calls the wrong method in the controller (it goes back to index).

Any ideas why I might have this issue?

Controller 

```
[Route("query/_queryindexfilterpartial")] 
[HttpPost, ValidateAntiForgeryToken] 
public ActionResult QueryIndexUpdate(QueryFilterViewModel filterModel) 
{ 
    if (ModelState.IsValid) 
    { 
        filterModel.Field = filterModel.Field ?? 0; filterModel.Item = ListBoxExtension.GetSelectedValues<int>("Item"); 
    } 

    return RedirectToAction("Query", "Analysis", filterModel); 
}

```