Html.BeginForm с указанными аргументами использует GET вместо POST - PullRequest
0 голосов
/ 13 декабря 2018

Я создаю форму с помощью .NET MVC, и когда я передаю аргументы в @BeginForm, она использует get независимо от того, что я делаю.

Это то, что я имею до сих пор:

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

Я попытался удалить ", FormMethod.Post", чтобы увидеть, что произойдет, и все еще использует GET.Когда я использую BeginForm () без аргументов, он использует POST, но вызывает неверный метод в контроллере (он возвращается к индексу).

Есть идеи, почему у меня может возникнуть эта проблема?

Контроллер

[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); 
}

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

У меня была проблема не из-за BeginForm.BeginForm работал отлично и отправил все, но RedirectToAction передает параметры только как GET, поэтому измените его на что-то другое, и все будет работать как положено.

0 голосов
/ 13 декабря 2018

Глядя на метод контроллера.Я вижу, что имя не соответствует форме.Возможно, поэтому он никогда не достигнет этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...