Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 1
Регистрация: 06.09.2015
Сообщений: 81
1

Модель данных в представлении

06.04.2018, 17:43. Показов 1069. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Суть проблемы

Есть метод контроллера [HttpGet]Table1, в котором из БД отбираются данные и из них формируется List с типом данных DataUniqa
List<DataUniqa> listUniq = new List<DataUniqa>();

Этот List передается в представление Table1 return View(listUniq);

Представление это простая таблица с двумя Select-и для выбора городов
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@model List<_0104201test.Models.DataUniqa>
 
@{
    Layout = null;
}
 
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @using (Html.BeginForm("Table1", "Home", FormMethod.Post))
        {
            <div class="form-group">
                <p>@Html.DropDownList("Select", ViewBag.Citiesd as SelectList, "Выберете город отправления")</p>
            </div>
            <div class="form-group">
                <p>@Html.DropDownList("Select", ViewBag.Citiesa as SelectList, "Выберете город назначения")</p>
 
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-info form-control" value="Выбрать данные" />
            </div>
 
        }
    </div>
    <div style="margin:auto">
        <table border="1">
            <tr>
                <td rowspan="2">Город отпр</td>
                <td rowspan="2">Город прибытия</td>
                <td rowspan="2">План</td>
                <td colspan="31">Дни</td>
                <td rowspan="2">Факт</td>
            </tr>
             <tr>
             @for(var i = 1; i < 32; i++)
              {
                 <td>@i</td>
              }
            
             </tr>
 
            @foreach (_0104201test.Models.DataUniqa item in Model)
            {
 
                <tr>
                    <td><p>@item.DepCity</p></td>
                    <td><p>@item.ArCity</p></td>
                    <td><p>@item.Plan</p></td>
                    @foreach(int c in item.Data)
                    {
                            if (с==1)
                            {
                   <td>1</td>
                 }
                 else
                {
                               <td>0</td>
                            }    
                    }
                    <td><p>@item.Fact</p></td>
                    
                </tr>
 
            }
        </table>
    </div>
</body>
</html>
При выборе города отправления и города прибытия генерируется POST запрос к методу [HttpPost]Table1, который фильтрует данные по критериям города отправления и города прибытия и передает их в то же представление Table1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[HttpPost]
        public ActionResult Table1(List<string> Select)
        {
            //Select[0] - город отправления
            //Select[1] - город прибытия
 
 
            //DataContext db = new DataContext();
 
 
            var data = listUniq.Where(t=>t.DepCity==Select[0]&t.ArCity==Select[0]);
 
 
            return View("Table1",data);
        }

Вопрос: Модель данных передаваемых из обоих контроллеров одна и та же DataUniqa, но при передачи отфильтрованных данных из метода[HttpPost] public ActionResult Table1(List<string> Select) выдает ошибку, что модель данных не совпадает с указанной в представлении.

Не пойму почему, ведь по сути я передаю в представление просто "обрезанный" List, а тип данных одинаковый
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2018, 17:43
Ответы с готовыми решениями:

Как описать модель данных, если модель построена в режиме database first?
Например: public class PersonFindExtended { public string FAM {...

Отображение данных в представлении
Допустим у меня есть несколько запросов в контроллере и я хочу передать их в представление....

Отображение данных в частичном представлении
Добрый день. Возник такой вопрос, есть страница, в ней хочу сделать 2 частичных представления, в 1...

Передача дополнительных данных в строготипизированном представлении
Здравствуйте, есть строготипизированное представление для редактирования объекта, в котором данные...

2
8 / 8 / 1
Регистрация: 18.03.2018
Сообщений: 26
07.04.2018, 02:40 2
То, что вы передаёте в представление, является IEnumerable. А в представлении заявлен тип List.

И вообще, старайтесь не использовать тип List в контрактах, не указывайте List, как тип модели. Как минимум IList, ICollection или IEnumerable. В идеале IReadOnlyCollection.
0
2 / 2 / 1
Регистрация: 06.09.2015
Сообщений: 81
09.04.2018, 15:44  [ТС] 3
Спасибо!
0
09.04.2018, 15:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2018, 15:44
Помогаю со студенческими работами здесь

Постройте инфологическую модель предметной области, дамалогическую модель реляционной базы данных
Постройте инфологическую модель предметной области, дамалогическую модель реляционной базы данных,...

Обновление данных в представлении
Добрый день Когда я получаю данные с бэкэнда и записываю их в переменную, а затем через ng-repeat...

Отображения данных в представлении combobox
Здравствуйте, Создаю модель и связываю ее с представлением combobox connection_db conn_db;...

Различия в представлении данных во вьюсе и запросе
При выполнении вьюса данные представлены нормальным образом, т.е. разделение целой части от дробной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru