ASP.Net MVC Post:键值对 - 无法检索值

时间:2011-11-14 15:57:31

标签: asp.net-mvc post key-value

我有一个表单集合(fc),我试图在电子邮件中附加'key'和'value'的值。我对键(newKey)没有任何问题,但我似乎无法正确编码'值'。 'for'循环检查密钥的前3个字符是否为'ddl',表示它来自下拉列表。如果是这样,循环应该附加下拉列表控件中的值(键值对的值)。 (如果没有,循环调用另一个方法根据复选框控件的值附加是或否)提前谢谢。

       //Append new key-value pairs implemented since legacy keys
        for (int i = 0; i < newKeys.Length; i++ )
        {

            //Checks for prefix of element to determine type of element
            if(newKeys[i].Substring(0,3) == "ddl"){
                sb.Append(newKeys[i] + ":  " + fc.GetValue(newKeys[i]) + "\",<br />");
                sb.Append(newKeys[i] + ":  " + fc.GetValues(newKeys[i].ToString())  + "\",<br />");
            }
            else{
            sb.Append(newKeys[i] + ",\"" + Boolean(fc[newKeys[i]]) + "\",<br />");
            }
        }

2 sb.append命令返回以下内容:

ddlStratacacheConstellationManagerRole: System.Web.Mvc.ValueProviderResult“ ddlStratacacheConstellationManagerRole: System.String []“,

1 个答案:

答案 0 :(得分:0)

您编写的值不是String类型,也不会覆盖ToString()方法。

这就是调用标准object.ToString()方法并将对象的类型名称附加到字符串的原因。

要解决此问题,您需要覆盖所有可能的表单集合值的ToString()方法,或者考虑一些其他算法,这些算法将迭代集合并输出相应的值。