我正在使用 Asp.Net Core 2.1 Pagespublic 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>
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
这似乎是不可能的 - 传入的值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
数组的 a - System.String%5B%5D。
看来,为了实现您想要的,您将需要退回到传统UrlHelper
方法。这是它的样子:
<a href="@Url.Page("/MyPage", new { status = new [] { "A", "B" } })">Click</a>
我发现了这个Github 问题,其中最近的评论 (2017-11-24) 询问如何使用标签助手来实现这一点,但截至今天 (2018-08-10),该问题尚未得到解答。
- 1 回答
- 0 关注
- 227 浏览
添加回答
举报
0/150
提交
取消