0

我正在使用Mvc 6中的區域並嘗試路由到每個特定區域。 例如,我有這樣的:Mvc 6 taghelper asp-action route not working

我的控制器看起來裝飾有區域及路由屬性,像這樣:

[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> 

當我嘗試p ost形式拋出以下內容:

AmbiguousActionException:多個操作匹配。下面 行動匹配的路由數據,並已全部約束滿足:

Areas.Test.Controllers.TestController.Index

Areas.Test.Controllers.TestController.Create

你會認爲它將綁定到我的創建方法,當我在asp行動定義它,但是當我檢查的形式呈現的標記,它看起來像這樣:

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

我的我thod創建不處理,它只呈現測試/測試(區域/控制器)。

我也試圖用[Route("Create")][HttpGet("Create")]來裝飾我的方法,結果沒有。

我錯過了一些很明顯的東西嗎?

+0

支持? –

回答

1

如果您使用的是RC1那麼您不能在標籤助手中使用區域。在標記助手

的區域被您使用該框架的版本RC2link to issue

+0

我正在使用RC1,謝謝:) –