2017-05-06 56 views
0

我不能使用@ Url.Action在ASP.NET核心,因爲我有錯誤:@ Url.Action在ASP.NET核心不存在

IUrlHelper has no applicable method named Action

我想用@ Url.Action爲:

<a href="@(Url.Action(ViewBag.actionName, ViewBag.controllerName, new { page = i }) + ViewBag.routeValues)">page i</a> 

在ASP.NET MVC它產生我例如網址:

/Home/List?page=5&search=abc

在ViewBag.routeValues我傳遞額外的參數,例如:search = abc & active = true並將其粘貼到'012'頁面參數之後的url

我想我不能用標籤助手和'asp-route'來做同樣的事情 - 那我該怎麼辦?


好了 - 我需要CAS ViewBag字符串:

<a href="@(Url.Action((string)ViewBag.actionName, (string)ViewBag.controllerName, new { page = i }) + (string)ViewBag.routeValues)">page i</a> 

回答

4

你應該先閱讀ASP.NET Core Documentation找出標籤傭工,以及如何使用它們。

在ASP.NET Core的Razor實現中,使用標記助手而不是輔助方法。

<a href="@(Url.Action(ViewBag.actionName, ViewBag.controllerName, new { page = i }) + ViewBag.routeValues)">page i</a> 

將轉化爲

<a asp-controller="@ViewBag.actionName" asp-action="@ViewBag.controllerName" asp-route-id = "@i">page i</a> 

「ASP-路線」可以是路由參數或查詢參數(如果給定的動作沒有這樣的路線參數)。因此asp-route-xyz="abc"會將?xyz=abc添加到網址。

+0

但我不知道參數名稱!所以我不能使用asp-route-xyz !!! –

+0

然後使用'asp-all-route-data'標籤助手,[見這裏](http://stackoverflow.com/questions/43229707/append-querystring-to-href-in-asp-net-core-anchor-輔助標記/ 43231971#43231971) – Tseng