Маршрутизация в ASP.NET MVC Core, помощники по тегам перенаправляют на неверное действие POST - PullRequest
0 голосов
/ 26 октября 2018

В следующем примере, когда я нахожусь на http://test.com/pure-mvc-ui-demo (примечание без ID) и отправляю форму, MVC правильно перенаправляет на перегрузку POST действия контроллера примера (http://test.com/pure-mvc-ui-demo).

Когда я нахожусь на http://test.com/pure-mvc-ui-demo/1, форма, по-видимому, некорректно отправляет на http://test.com/pure-mvc-ui-demo/1, который не является допустимым URL для перегрузки сообщения.

Я могу обойти это, используя именованный маршрут, но я чувствую, что MVC должен знать, что в контексте POST такого маршрута нет.

Есть ли способ смягчить это, все еще используя помощники тегов?

CSHTML

<form asp-controller="PureMvcUiDemo" asp-action="Example" method="post">

Контроллер

    [HttpGet("pure-mvc-ui-demo/{exampleId?}")]
    public IActionResult Example(int? exampleId)
    {
        //...

        return View(exampleViewModel);
    }

    [HttpPost("pure-mvc-ui-demo")]
    [ValidateAntiForgeryToken]
    public IActionResult Example(ExampleViewModel exampleViewModel)
    {
        // ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...