2016-08-23 88 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) { ... }控制器方法。
請注意,您無法使用容易複雜的類型進行此操作。