在旧版本的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>
答案 0 :(得分:19)
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) {
...
}
请注意,您不能轻易使用复杂类型。