Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
val24
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 6
1

При использовании ActionLink данные в базу добавляются несколько раз

03.03.2018, 17:18. Просмотров 326. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Такая проблема, в частичном представлении GetItems выводится список работ подрядчика. При нажатии ссылки добавить работа должна добавиться в другое частичное представление Create1. На деле первый раз срабатывает нормально, а последующие добавляет записи по несколько раз.

частичное представление GetItems
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
@model IEnumerable<Beehive.Models.Работа_подрядчика>
 
 
<div id="usl">
    
    <br>
    <table class="table table-striped">
 
        <tr>
            <th>Наименование услуги</th>
            <th>Стоимость</th>
 
        </tr>
 
        @foreach (var item in Model)
            {
 
 
            <tr>
                <td value="@item.ID_работа_подрядчика">
                    @item.Прайс_работ.Наименование_работы    
                </td>
                <td>@item.Стоимость_работы</td>
         
                <td>@Ajax.ActionLink("Добавить", "Create1", new { id = item.ID_работа_подрядчика }, new AjaxOptions { UpdateTargetId = "vb" })</td>
             </tr>
            }
    </table>
 
</div>
 
    @Scripts.Render("~/scripts/jquery-1.10.2.js")
    @Scripts.Render("~/scripts/jquery.unobtrusive-ajax.js")
частичное представление Create1
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
@model IEnumerable<Beehive.Models.Работа_договора>
 
 
<div id="vb">
 
    <br>
    <table class="table table-striped">
 
        <tr>
            <th>Наименование услуги</th>
            <th>Стоимость</th>
 
        </tr>
 
        @foreach (var item in Model)
            {
 
 
            <tr>
                <td >
                    @item.Работа_подрядчика.Прайс_работ.Наименование_работы
                </td>
                <td>@item.Работа_подрядчика.Стоимость_работы</td>
 
                
            </tr>
        }
    </table>
 
</div>
 
@Scripts.Render("~/scripts/jquery-1.10.2.js")
@Scripts.Render("~/scripts/jquery.unobtrusive-ajax.js")
контроллеры
C#
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
  public ActionResult Rab(int id)
        {  //Для передачи в контроллер GetItems. id - это id подрядчика, с которым хотят заключить договор
            Session["Podr"] = id;
            //начальный параметр для выпадающего списка
            int selectedIndex = 1;
            //вывод выпадающего списка категории работ
 
            SelectList kategor = new SelectList(db.Категории_работ, "Id_категории_работ", "Наименование_категории", selectedIndex);
            ViewBag.Категории_работ = kategor;
 
            SelectList uslugi = new SelectList(db.Работа_подрядчика.Include(p => p.Прайс_работ.Категории_работ).Where(p => p.Прайс_работ.Категории_работ.Id_категории_работ == selectedIndex && p.Id_прайс_подрядчика == id), "ID_работа_подрядчика", "Стоимость_работы");
            ViewBag.Работа_подрядчика = uslugi;
          
            var работы = db.Работа_подрядчика.Include(p => p.Прайс_работ.Категории_работ).Where(p => p.Прайс_работ.Категории_работ.Id_категории_работ == selectedIndex && p.Id_прайс_подрядчика == id);
 
            return View(работы.ToList());
        }
        
      //Выводит частное представление, которое меняет список работ подрядчика, в зависимости от выбранной категории
        public ActionResult GetItems(int id)
        {
            int cart = (int)Session["Podr"];
         
            return PartialView(db.Работа_подрядчика.Include(p => p.Прайс_работ.Категории_работ).Where(p => p.Id_прайс_подрядчика == cart && p.Прайс_работ.Категории_работ.Id_категории_работ == id).ToList());
        }
 
  
        //Добавляет выбранную работы в список работ договора
        public ActionResult Create1(int id)
        {
            Работа_договора работа = new Работа_договора { ID_работа_подрядчика = id, Id_работ_договора = 1};
            
            db.Работа_договора.Add(работа);
            db.SaveChanges();
 
            return PartialView(db.Работа_договора.Where(p => p.Работы_договора.ID_заказчика == 2));
           
        }
основное представление Rab
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
<div id="usl" class="col-md-6"> 
 
    <br>
      <table class="table table-striped">
 
            <tr>
                <th>Наименование услуги</th>
                <th>Стоимость</th>
                <th>         </th>
 
 
            </tr>
            @foreach (var item in Model)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(modelItem => item.Прайс_работ.Наименование_работы)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Стоимость_работы)
                    </td>
                    <td>
               
                        @Ajax.ActionLink("Добавить", "Create1", new { id = item.ID_работа_подрядчика }, new AjaxOptions { UpdateTargetId = "vb" })
 
                    </td>
 
                </tr>
            }
        </table></div>
<div id="vb" class="col-md-6">
    <br>
    <table class="table table-striped">
        <tr>
            <th>Наименование услуги</th>
            <th>Стоимость</th>
            <th>        </th>
 
        </tr>
 
 
    </table></div>
 
    @section scripts{
        <script type="text/javascript">
            $(function () {
 
                $('#kat').change(function () {
                    // получаем выбранный id
                    var id = $(this).val();
                    var ip = $('#ipod').val();
                    $.ajax({
                        type: 'GET',
                        url: '@Url.Action("GetItems")/' + id,
                        success: function (data) {
                            // заменяем содержимое присланным частичным представлением
                            $('#usl').replaceWith(data);
                        }
                    });
                });
            })
        </script>
 
    }
 
    @Scripts.Render("~/scripts/jquery-1.10.2.min.js")
    @Scripts.Render("~/scripts/jquery.unobtrusive-ajax.min.js")
 
 
    <body>
        <div>
        </div>
    </body>
Добавлено через 21 час 32 минуты
Вопрос снят. Проблема была в дублирующихся подключенных библиотеках.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2018, 17:18
Ответы с готовыми решениями:

Ajax.ActionLink срабатывает(вызывается) несколько раз подряд
Всем привет! Такая проблема. Есть Ajax хелпер: @Ajax.ActionLink(&quot;Remove from friends&quot;,...

Записи из текстовых полей при нажатии Refresh добавляются опять в базу
Записи из текстовых полей при нажатии Refresh добавляются опять в базу... ...

Не добавляются данные в базу
Помогите, пожалуйста!! Не понимаю в чем ошибка. public partial class DealPlace :...

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

Не добавляются данные в базу
&lt;html&gt; &lt;head&gt; &lt;title&gt;form&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form action=&quot;insert.php&quot;...

2
XIST
1125 / 837 / 116
Регистрация: 01.10.2009
Сообщений: 2,544
Записей в блоге: 1
03.03.2018, 17:28 2
Цитата Сообщение от val24 Посмотреть сообщение
в дублирующихся подключенных библиотеках
а в каких?
0
val24
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 6
03.03.2018, 17:38  [ТС] 3
Убрала с частичных представлений и основного
все подключенные скрипты . Добавила только в _Layout.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2018, 17:38

Не добавляются данные в базу данных
Приветствую всех,хочу обратиться с проблемой,которая не даёт мне покоя уже 2 день:&quot;Как добавить...

Данные не добавляются в Базу Данных
В запросе на добавление данных вроде ошибок нет, не могу понять почему данные не добавляются,...

Почему не добавляются данные в базу
Ребят, подскажите начинающей. Вот код: sqlConnection1.Open(); SqlTransaction...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru