错误:System.Collections.Generic.List`1 [System.String]

时间:2016-11-22 09:29:31

标签: c# asp.net asp.net-mvc visual-studio list

我有一个包含十六进制代码的查询,当有十六进制代码时,我想将背景颜色应用到我表格中的先前数据,但是它已经写了

  

background-color:System.Collections.Generic.List`1 [System.St ring]

到源代码中的每一行。

这是我的代码:

<tr>
            @{
                int nbItems = ViewBag.listDonnees.Count;
                var hashCodes = new List<String>() { "#FFFFFF", "#FFD700", "#FF6347" };

                for (int cpt = 0; cpt < nbItems; cpt++)
                {
                    string colorcode = string.Empty;
                    if (cpt + 1 < nbItems)
                    {
                        var mylist = (IEnumerable < dynamic >) ViewBag.listDonnees[cpt];
                        colorcode = mylist.FirstOrDefault(s => hashCodes.Contains(s));
                    }
                    if (colorcode != string.Empty)
                    {
                        <td style="background-color:@ViewBag.listDonnees[cpt+1]">colorcode</td>
                    }
                    else
                    {
                        var str = String.Join(",", ViewBag.listDonnees[cpt]);
                        <td>str</td>
                    }
                    cpt++;
                }
            }
        </tr>

我想替换&#34; colorcode&#34;通过当前数据和listDonnees是List&lt;列表&lt;字符串&gt; &GT;

我的模特:

dac = new SqlDataAdapter();
            dac.SelectCommand = cmd1;

            dsp = new DataSet();
            dac.Fill(dsp, "donnees");

            List<List<string>> listDonnees = new List<List<string>>();

            foreach (DataRow row in dsp.Tables["donnees"].Rows)
            {
                List<string> l = new List<string>();

                for (int i = 0; i < row.ItemArray.Length; i++)
                {
                    l.Add(row[i].ToString());
                }

                listDonnees.Add(l);
            }
            list.Add("donnees", listDonnees);

我的控制器:

        public ActionResult AfficheRspic002(string Tdate_d, string Ddl_fampic, string Ddl_donnee, string Ddl_detail, string Ddl_caracteristique, string Ddl_poste, string Ddl_ilot, string Ddl_nposte, string Ddl_atelier, string Ddl_tposte)
    {
        Dictionary<string, object> list = model.getPICv2(Tdate_d,Ddl_fampic, Ddl_donnee, Ddl_detail, Ddl_caracteristique, Ddl_poste, Ddl_ilot, Ddl_nposte, Ddl_atelier, Ddl_tposte);

        ViewBag.listEntete = list["entete"];
        ViewBag.listJO = list["jo"];
        ViewBag.listPrevision = list["prevision"];
        ViewBag.listCommandeEt = list["commande"];
        ViewBag.listDonnees = list["donnees"];

        return PartialView();
    }

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如你所说

  

listDonnees是一个List&lt;列表&lt;字符串&gt; &GT;

然后当然,@ViewBag.listDonnees[cpt+1]将是字符串列表。您应该将颜色代码存储在ViewBag中,而不是颜色代码列表。

如果您发布从列表中选择颜色的方式,那么我们可以为您提供更具体的答案。