簡體   English   中英

如何通過錨標記幫助器傳遞值數組?

[英]How Do I Pass an Array of Values via Anchor Tag Helper?

我正在使用Asp.Net Core 2.1 Pages

public async Task OnGetAsync([FromQuery(Name = "status")] string[] myValues)
{

}

我正在嘗試從anchor tag helper傳遞值數組,但是我在myValues收到的只是一項。 如果我手動鍵入查詢字符串以鏡像MyRoute?myValues=A&myValues=B ,它將按預期工作。 我嘗試了以下方法,但均未成功。

<a asp-page="/MyPage" asp-route-status="A" asp-route-status="B">Click</a>

<a asp-page="/MyPage" asp-route-status="new [] { A, B }">Click</a>

<a asp-page="/MyPage" asp-route-status="@(new [] { A, B })">Click</a>

@{  var list = new string[] { "A", "B" };}
<a asp-page="/MyPage" asp-route-status="@list">Click</a>

這似乎不可能-傳遞給asp-route-status的值應該是一個字符串,或者是一個無論如何都會轉換為字符串的值。 您可以在源代碼中看到這一點,其中RouteValues屬性是<string, string>的字典。

讓我們來看您的第一個示例,如下所示:

<a asp-page="/MyPage" asp-route-status="A" asp-route-status="B">Click</a>

我正在使用Visual Studio及其所有的智能知識-當我使用此代碼段時,會通過綠色的波浪狀文字和工具提示警告“屬性'asp-route-status'已經存在”。 最終結果是實際上只有指定的第一個值才傳遞到查詢字符串中。

使用任何一種有效的數組方法, status的生成值只是數組的ToString - System.String%5B%5D

看來,要實現您想要的目標,您將需要使用傳統的UrlHelper方法。 看起來像這樣:

<a href="@Url.Page("/MyPage", new { status = new [] { "A", "B" } })">Click</a>

我發現了這個 Github問題,最近的評論(2017-11-24)詢問如何使用標簽幫助器實現此功能,但截至今天(2018-08-10)尚未解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM