c# - 在 ASP.NET 中接收查询字符串数组?

标签 c# asp.net

这是我在浏览器中看到的 URI 编码查询字符串:

?itemsOnly=true&addedArticles%5B%5D=202&addedArticles%5B%5D=011&addedArticles%5B%5D=280&addedArticles%5B%5D=208&addedArticles%5B%5D=020

这是我的查询字符串的相关部分,如 ASP.NET 中的 Request.QueryString[1] 属性所示:

"202,011,280,208,020"

即使查询字符串位于请求中,我的 Controller 也会忽略它。

我尝试过以下方法

public ActionResult ActionName(bool itemsOnly = false, string addedArticles = "")

public ActionResult ActionName(bool itemsOnly = false, string[] addedArticles = null)

public ActionResult ActionName(bool itemsOnly = false, IEnumerable<string> addedArticles = null)

但在每种情况下,addedArticles 都是空的。

如何告诉 ASP.NET Controller 将 Request.QueryString[1] 保存到类型化变量?

最佳答案

您的 Controller 操作应该是

public ActionResult ActionName(string[] addedArticles, bool itemsOnly = false)

您可以向其发送一个查询字符串,例如

?addedArticles=[X]&addedArticles=[X2]&addedArticles=[X3]

其中 [X]、[X2]、[X3]... 是您的字符串。

您可以尝试使用它来编码您的查询字符串

public static string ToQueryString(this NameValueCollection self)
            => string.Join("&", self.AllKeys.Select(a => a + "=" + HttpUtility.UrlEncode(self[a])));

关于c# - 在 ASP.NET 中接收查询字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50353805/

相关文章:

javascript - 母版页 js/代码在子文件夹中不起作用

asp.net - 如何在 Web 应用程序中实现时区?

c# - 等待 Async Void 方法调用以进行单元测试

c# - 使用 Share API 发布到 LinkedIn

c# - 为什么这段代码变慢了?

c# - 我的 OSDB 哈希算法有什么问题?

c# - ASP.net Webservice *.asmx 访问与 WCF 服务引用

c# - 读取文件时出现 UnauthorizedAccessException

c# - 当文本框上的 iframe 控件具有焦点时,如何保持页面的滚动位置?

c# - aspnetVnext 核心 CLR 中缺少 System.Drawing 命名空间