2016-08-23 96 views
3

在旧版本的MVC 5的我能做到这一点通过路由参数天冬氨酸行动路线数据

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

我试图让这个与新的ASP-action方法工作,我figgured了我所能做这个解决方法。但是,这是什么正确的语法?

@{ 
     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

也许[this](http://stackoverflow.com/questions/30020892/taghelper-for-passing-route-values-as-part-of-a-link)可以帮助你。 –

+0

没有MVC6(再)! https://blogs.msdn.microsoft.com/webdev/2016/01/19/asp-net-5-is-dead-introducing-asp-net-core-1-0-and-net-core-1- 0/ – Tseng

+0

这实际上并没有说什么MVC将被称为什么。 .Net Core 1.0就是这个框架。 – stibay

回答

9

Dave Paquette对很多TagHelpers做了一个很好的写作。 下面是一个锚标记助手: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">,那么这将提供myValuepublic Task<IActionResult> MyAction(string myVar) { ... }控制器方法。
请注意,您无法使用容易复杂的类型进行此操作。

相关问题