Asp动作路由数据

本文关键字:数据 路由 Asp | 更新日期: 2023-09-27 18:03:37

在旧版本的MVC 5中,我可以这样做来传递路由参数

@Html.ActionLink("New item", "Suggestion", new ProductSuggestion() { Username = Model.Username }, new { @class = "btn btn-default" })

我正试图让这个与新的asp-action方法一起工作,我发现我可以这样做作为一个解决方案。但是正确的语法是什么呢?

    @{ 
        var a = new Dictionary<string, string> { { "Username", Model.Username } };
    }
    <a asp-action="Suggestion" asp-all-route-data="a" class="btn btn-default">New item</a>

Asp动作路由数据

Dave Paquette写了一篇很好的关于许多taghelper的文章。下面是锚标记帮助器:http://www.davepaquette.com/archive/2015/06/01/mvc-6-anchor-tag-helper.aspx

基本上你可以做

<a asp-controller="MyController" asp-action="MyAction" asp-route-myvar="myValue">

然后将myValue提供给控制器方法,如

public Task<IActionResult> MyAction(string myVar) { 
...
} 

我相信你仍然可以。我认为缺少的是在上面的锚中包含控制器。

@{ 
    var a = new Dictionary<string, string> { { "Username", Model.Username } };
}
<a asp-controller="{Controller}" asp-action="Suggestion" asp-all-route-data="a" class="btn btn-default">New item</a>