我有一个表单集合(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 []“,
答案 0 :(得分:0)
您编写的值不是String
类型,也不会覆盖ToString()
方法。
这就是调用标准object.ToString()
方法并将对象的类型名称附加到字符串的原因。
要解决此问题,您需要覆盖所有可能的表单集合值的ToString()
方法,或者考虑一些其他算法,这些算法将迭代集合并输出相应的值。