Как разделить List во View

359
18 апреля 2022, 02:50

Использую ChartJS для отрисовки диаграммы. В принимаемых значениях lables и data может обрабатываться только разделенные значения. Но в моем случае текст идет монолитно.

View

<script>
    function chart1() {
        var ctx = document.getElementById('myChart');
        window.myChart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: [@foreach (var m in Model) { @m.NameArea}],
                datasets: [{
                        label: 'Районы',
                    data: [@foreach (var m in Model) { @m.AreaParameter}],
                    backgroundColor: [
                        'rgba(255, 99, 132, 0.2)'
                    ],
                    borderColor: [
                        'rgba(255, 99, 132, 1)'
                    ],
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero: true
                        }
                    }]
                }
            }
        });
    };</script>

Controller

public ActionResult Index()
    {
        string connString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\database.mdf;Integrated Security=True";
        using (SqlConnection conn = new SqlConnection(connString))
        {
            List<Area> currentArea = new List<Area>();
            using (var cmd = new SqlCommand("SELECT NameArea, AreaParameter FROM FileTable", conn))
            {
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    List<Area> dictList = new List<Area>();
                    while (reader.Read())
                    {
                        currentArea.Add(new Area()
                        {
                            //Id = Int32.Parse(reader["id"].ToString()),
                            NameArea = reader["NameArea"].ToString(),
                            AreaParameter = Int32.Parse(reader["AreaParameter"].ToString())
                        });
                    }
                }
                conn.Close();
            }
            conn.Open();
            SqlCommand comDelete = new SqlCommand("DELETE FROM FileTable", conn);
            comDelete.ExecuteNonQuery();
            conn.Close();
            return View(currentArea);
        }
    }

В итоге скрипт получает список

labels: [ОдинДваТриЧетыре]

А хотелось бы увидеть

labels: ['Один', 'Два', 'Три', 'Четыре']
Answer 1

В общем смог решить, но с костылем

....
labels: [@foreach (var m in Model) {@Html.Raw("'"+String.Join("', '", m.NameArea)+"', ")}]
....

Осталась проблема только в том, что в конце списка остается лишняя запятая.

READ ALSO
Rider. Пустой .cs файл при генерации из web-reference

Rider. Пустой .cs файл при генерации из web-reference

Когда я добавляю web-reference к https://wwwonvif

132
Почему массив выдает такой результат? С#

Почему массив выдает такой результат? С#

Результат должен быть просто 1,но почему то результат 2,1,2Метод ArrayDiff должен из массива a удалять все такие же цифры, которые есть в массиве...

111
Добавление введеных переменных в стек

Добавление введеных переменных в стек

Нужно создать стек в котором хранится ссылка на тип ISolid - объект класса

145
Не обнаруживаются ошибки в Atom C#

Не обнаруживаются ошибки в Atom C#

Скачал Atom, поставил: language-csharp, ide-csharp, linter, но ошибки по прежнему не подсвечиваютсяЕсть ли пакет нужный для шарпа? Вот скрины, что ошибки нет

122