【问题标题】:Mvc 6 taghelper asp-action route not workingMvc 6 taghelper asp-action路由不起作用
【发布时间】:2016-08-23 00:27:23
【问题描述】:

我正在使用 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

当我在 asp-action 中定义它时,你会认为它会绑定到我的 Create 方法,但是当我检查表单的呈现标记时,它看起来像这样:

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

我的方法 Create 没有被处理,它只渲染测试/测试(区域/控制器)。

我还尝试用[Route("Create")][HttpGet("Create")] 装饰我的方法,但没有结果。

我在这里错过了什么明显的东西吗?

【问题讨论】:

  • 您使用的是哪个版本的框架?

标签: asp.net-core asp.net-mvc-routing asp.net-core-mvc tag-helpers


【解决方案1】:

如果你使用RC1,那么你不能在标签助手中使用区域。

RC2 link to issue 支持标签助手中的区域

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2017-02-20
    相关资源
    最近更新 更多