Mvc 6 taghelper asp-action route не работает

Я использую области в Mvc 6 и пытаюсь перейти к каждой конкретной области. Например у меня это:

Мой контроллер выглядит украшенным атрибутом Area и route, например:

[Authorize]
[Area("Test")]
[Route("[area]/[controller]")]
public class TestController : Controller

Затем у меня есть два метода HTTPGET, определенные ниже:

    public IActionResult Index()
    {
        var model = new TestViewModel();
        return View(model);
    }

    public IActionResult Create()
    {
        var model = new TestViewModel();
        return View(model);
    }

Наконец, моя форма выглядит так:

    <form asp-route-area="Test" asp-controller="Test" asp-action="Create" asp-antiforgery="false" method="get">
        <input type="submit" value="Generate test"/>
    </form>

Когда я пытаюсь опубликовать форму, она выдает следующее:

AmbiguousActionException: найдено несколько действий. Следующие действия соответствуют данным маршрута и удовлетворяют всем ограничениям:

Areas.Test.Controllers.TestController.Index

Areas.Test.Controllers.TestController.Create

Вы могли подумать, что он будет привязан к моему методу Create, когда я определю его в asp-действии, но когда я проверяю визуализированную разметку формы, это выглядит так:

<form method="get" action="/Test/Test">
        <input type="submit" value="Generate test">
 </form>

Мой метод Create не обрабатывается, он отображает только Test / Test (область / контроллер).

Я также пытался украсить свой метод [Route("Create")] и [HttpGet("Create")], но безрезультатно.

Я упускаю здесь что-то очевидное?


person dont_trust_me    schedule 28.04.2016    source источник
comment
какую версию фреймворка вы используете?   -  person Mike    schedule 29.04.2016


Ответы (1)


Если вы используете RC1, вы не можете использовать области в помощниках тегов.

Области в помощниках тегов поддерживаются в RC2 ссылке на проблему

person Mike    schedule 29.04.2016