Jam*_*mes 2 c# .net-core asp.net-core asp.net-core-2.0 asp.net-core-tag-helpers
我在用着Asp.Net Core 2.1 Pages
public async Task OnGetAsync([FromQuery(Name = "status")] string[] myValues)
{
}
Run Code Online (Sandbox Code Playgroud)
我试图从 an 传递一组值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>
Run Code Online (Sandbox Code Playgroud)
这似乎不可能 - 传入的值asp-route-status预计是一个字符串,或者是一个无论如何都会转换为字符串的值。您可以在源代码中看到这一点,其中RouteValues属性是<string, string>.
让我们看一下您的第一个示例,它如下所示:
<a asp-page="/MyPage" asp-route-status="A" asp-route-status="B">Click</a>
Run Code Online (Sandbox Code Playgroud)
我正在使用 Visual Studio 及其所有智能感知魔法 - 当我使用此代码片段时,我会通过绿色波浪线和工具提示警告“属性‘asp-route-status’已存在”。。这里的最终结果是只有指定的第一个值实际上被传递到查询字符串中。
使用任何一种有效的数组方法,生成的值status只是ToString数组的一个 - System.String%5B%5D。
看来,为了实现您想要的目标,您将需要退回到传统UrlHelper方法。看起来是这样的:
<a href="@Url.Page("/MyPage", new { status = new [] { "A", "B" } })">Click</a>
Run Code Online (Sandbox Code Playgroud)
我发现这个Github 问题,其中最新评论(2017-11-24)询问如何使用标签帮助器实现此目的,但截至今天(2018-08-10)该问题尚未得到解答。
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |