Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 3
1

Получение данных в модель из View посредством Html.CheckBoxFor

08.05.2017, 13:16. Просмотров 1452. Ответов 3
Метки нет (Все метки)


Господа!

Прошу помощи!
Тема такая: с помощью хелпера Html.CheckBoxFor задаю некий динамический чекбокс и считываю его состояние в модель. Также я записываю в атрибут id данного элемента некоторое значение из моего ViewBag.

Вопрос: подскажите, как мне получить значение атрибута ID в мою модель?
Дополнительно: идея в том, чтобы привязать checkbox к некоторому ID для дальнейшего процессинга, связанного уже с БД. Может лучше связать модель с каким-то другим элементом (например скрытым, хранящим идентификационные данные чекбокса) и из него считывать данные? Но только как?!

Всем откликнувшимся спасибо за помощь!

Код элемента View:
C#
1
2
3
4
5
6
7
8
9
10
11
12
@model myProject.Models.ItemToDelete
....
    @foreach (var item in ViewBag.DB)
    {
    ....................
                        </td>
                            @Html.CheckBoxFor(m => m.CheckBoxes[i].Checked, new { @id = item.Id.ToString() })
                        </td>
    ....................
                i++;
    }
....
Вот что генерится в разметке таким кодом:
HTML5
1
2
3
4
<td>
    <input data-val="true" data-val-required="Требуется поле Checked." id="ce04ba3b-96a0-4180-9b64-5923b2ce2592" name="CheckBoxes[0].Checked" type="checkbox" value="true" />
    <input name="CheckBoxes[0].Checked" type="hidden" value="false" />
</td>
Код модели:
C#
1
2
3
4
5
6
7
8
namespace myProject.Models
{
    public class ItemToDelete
    {
        public List<CheckBox> CheckBoxes { get; set; }
        ...
    }
}
Не судите строго, поскольку сам недавно только начал изучать технологию MVC.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2017, 13:16
Ответы с готовыми решениями:

Html.CheckBoxFor
Подскажите пжл. Я создаю хелпер @Html.CheckBoxFor(model =&gt; model.RememberMe, new { @class =...

Получение данных в потоке посредством GetCPUUsage
Подскажите про метод потока, в нём просит прописать &quot;TSystemTimes &amp;PrevSystemTimes&quot;, нигде про это...

Получение данных с HTML
вот пример кода &lt;html&gt;&lt;head&gt; &lt;script type=&quot;text/javascript&quot;&gt; &lt;!-- function total(){...

Получение данных из таблицы HTML
Доброго времени суток! Уже неделю пытаюсь найти материал по своему вопросу, но, к сожалению,...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
3
32 / 31 / 10
Регистрация: 07.08.2012
Сообщений: 148
08.05.2017, 20:25 2
Цитата Сообщение от Foster73 Посмотреть сообщение
Но только как?!
HTML5
1
2
3
4
 </td>
@Html.CheckBoxFor(m => m.CheckBoxes[i].Checked })
<input name=имякакоенибудь value=item.Id.ToString() type="hidden">
</td>
Цитата Сообщение от Foster73 Посмотреть сообщение
подскажите, как мне получить значение атрибута ID в мою модель?
и покажите весь код view
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 3
09.05.2017, 12:12  [ТС] 3
Askfor
HTML5
1
2
3
4
</td>
@Html.CheckBoxFor(m => m.CheckBoxes[i].Checked })
<input name=имякакоенибудь value=item.Id.ToString() type="hidden">
</td>
- Я так понимаю, что атрибут name элемента input должно совпадать с именем соответствующего элемента CheckBox (код View представлен ниже)? Только мне не понятно, как модель "возьмёт" из этого элемента данные и запишет их в свойство ID соответствующего CheckBox'а?

и покажите весь код view
- Вот он:
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
39
40
41
42
43
44
45
46
47
@model myProject.Models.ItemToDelete
 
<style>
    .btn a {
        color: white;
        text-decoration: none;
    }
</style>
 
@{
    ViewBag.Title = "Главная страница";
}
 
<h2><strong>Список сообщений</strong></h2>
 
<div class="container">
    @using (Html.BeginForm("Index", "Home"))
    {
        int i = 0;
 
        <table id="repeater" class="table table-hover">
            @foreach (var item in ViewBag.DB)
                {
                <tbody>
                    <tr>
                        <td>
                            @Html.CheckBoxFor(m => m.CheckBoxes[i].Checked, new { @style = "height: 35px; width: 35px" })
                            <input name=@String.Format("CheckBoxes[{0}].Checked", i) value=@item.Id.ToString() type="hidden">
                        </td>
                        <td>
                            <div class="row">
                                <div class="col-md-9 text-left"><h4>Заголовок: <strong><u>@item.Title</u></strong></h4></div>
                                <div class="col-md-3">От кого: <strong>@item.Sender</strong></div>
                            </div>
                            <div class="row">
                                <div class="col-md-2">Текст сообщения:</div>
                                <div class="col-md-10"><strong>@item.Text</strong></div>
                            </div>
                        </td>
                    </tr>
                </tbody>
                i++;
            }
        </table>
        <button type="submit" class="btn btn-danger btn-lg">Удалить выбранные сообщения</button>
    }
</div>
0
32 / 31 / 10
Регистрация: 07.08.2012
Сообщений: 148
10.05.2017, 19:08 4
Цитата Сообщение от Foster73 Посмотреть сообщение
Только мне не понятно, как модель "возьмёт" из этого элемента данные и запишет их в свойство ID соответствующего CheckBox'а?
инпуту даете имя и делаете в модели поле с таким же именем, соответственно value=@item.Id.ToString() будет значением этого поля. как принимаете в модели массив CheckBoxes[i] так же и для инпута с нужным ID.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2017, 19:08

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Получение данных Selected(html)
У нас есть select &lt;select name=&quot;musicType&quot;&gt; &lt;c:forEach items=&quot;${musicTypes}&quot;...

Получение данных с div HTML
Приветствую. Нужно получить число результатов с страницы поиска Яндекса. Для начала надо...

Получение данных с html страницы
Подскажите в какую сторону капать Есть html страница с таблицей Из нее нужно получить цифорки С...

Получение данных от angular service напрямую в html
Допустим, есть элементарный сервис angular.module(&quot;services&quot;, ).service(&quot;someService&quot;, function...


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

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

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