![](/img/trans.png)
[英]How do I pass a property from a razor page model to asp-route-id tag helper
[英]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.