2

我正在尝试接受表单的查询字符串

?param[key1]=value1&param[key2]=value2

并将其转换为 C# MVC 4 中的字典。这在 PHP 中是微不足道的,但我无法找到在 C# 中重现它的任何方法。

我知道我可以通过

?param=value1&param=value2

但这留下了订购问题,并且对我的目的几乎没有用处。

希望这不是框架的限制,我如何在 C# 中实现字典式转换?

澄清一下:我不想将查询字符串转换为 NVC,而是将查询字符串参数转换为他们自己的 NVC。这不像 ParseQueryString() 或 Request.QueryString 对象那么简单

4

3 回答 3

2

您不能只使用Request.QueryStringAsp.Net 为您提供的集合吗?由于您使用的是 MVC,它将位于您的控制器ControllerContext属性(位于该对象的HttpContext属性上)。

于 2013-01-31T18:44:13.827 回答
1

在这里,我修复了一些适合您的代码,虽然不是最好的解决方案,但它应该可以工作。

   string basestring = "?param[key1]=value1&param[key2]=value2";
        string newstring = basestring.Replace("?", "").Replace("param[", "").Replace("]", "");
        var array = newstring.Split('&');
        var dictionary = new Dictionary<string, string>();
        foreach (var onestring in array)
        {
            var splitedstr = onestring.Split('=');
            dictionary.Add(splitedstr[0],splitedstr[1]);
        }
于 2013-01-31T18:52:23.223 回答
0

你也可以试试这样的

    public ActionResult SubmitFormWithFormCollection(FormCollection parameters)
    {
        foreach (string param in parameters)
        {
            ViewData[param] = parameters[param];
        }

        return View();
    }
于 2013-01-31T18:47:27.517 回答