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

Вывод значения адреса почты в DropDownListFor, введённого в предыдущей форме

15.05.2014, 11:28. Просмотров 536. Ответов 7
Метки нет (Все метки)

В моём приложении на странице ввода информации о читателе я ввожу данные о человеке (имя, адрес почты, и т. д.), на странице выдачи книги мне необходимо, чтобы при выборе читателя в DropDownListFor появлялся адрес его почты. Используются разные модели: User и Uchet.

Спасибо заранее

Контроллер страницы ввода инфы о читателе:

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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcLib.Models;
using MvcLibraly.Models;
 
namespace MvcLibraly.Controllers
{
    public class UsersController : Controller
    {
        private BookDBContext db = new BookDBContext();
 
        //
        // GET: /Users/
 
        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }
 
        //
        // GET: /Users/Details/5
 
 
        public ActionResult SearchIndex(string searchString)
        {
            var users = from m in db.Users
                         select m;
 
            if (!String.IsNullOrEmpty(searchString))
            {
                users = users.Where(s => s.Name.Contains(searchString));
            }
 
            return View(users);
        }
 
 
        public ActionResult Details(int id = 0)
        {
            User user = db.Users.Find(id);
            if (user == null)
            {
                return HttpNotFound();
            }
            return View(user);
        }
 
        //
        // GET: /Users/Create
 
        public ActionResult Create()
        {
            return View();
        }
 
        //
        // POST: /Users/Create
 
        [HttpPost]
        public ActionResult Create(User user)
        {
            if (ModelState.IsValid)
            {
                db.Users.Add(user);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
 
            return View(user);
        }
 
        //
        // GET: /Users/Edit/5
 
        public ActionResult Edit(int id = 0)
        {
            User user = db.Users.Find(id);
            if (user == null)
            {
                return HttpNotFound();
            }
            return View(user);
        }
 
        //
        // POST: /Users/Edit/5
 
        [HttpPost]
        public ActionResult Edit(User user)
        {
            if (ModelState.IsValid)
            {
                db.Entry(user).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(user);
        }
 
        //
        // GET: /Users/Delete/5
 
        public ActionResult Delete(int id = 0)
        {
            User user = db.Users.Find(id);
            if (user == null)
            {
                return HttpNotFound();
            }
            return View(user);
        }
 
        //
        // POST: /Users/Delete/5
 
        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            User user = db.Users.Find(id);
            db.Users.Remove(user);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
 
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
Представление страницы ввода инфы о читателе:

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
76
77
78
79
80
81
82
83
@model MvcLib.Models.User
 
@{
    ViewBag.Title = "Добавление читателя";
}
 
<h2>Добавление читателя</h2>
 
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
 
    <fieldset>
        <legend>User</legend>
 
       @* <div class="editor-label">
            Фамилия
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Surname)
            @Html.ValidationMessageFor(model => model.Surname)*@
        @*</div>*@
 
        <div class="editor-label">
            Ф.И.О.
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name, "Введены некорректные данные!")
        </div>
 
       @* <div class="editor-label">
            Отчество
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Lastname)
            @Html.ValidationMessageFor(model => model.Lastname)
        </div>*@
 
        <div class="editor-label">
            Год рождения
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BirthDate)
            @Html.ValidationMessageFor(model => model.BirthDate, "Введены некорректные данные!")
        </div>
 
        <div class="editor-label">
            Телефон
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Phone)
            @Html.ValidationMessageFor(model => model.Phone, "Введены некорректные данные!")
        </div>
 
        <div class="editor-label">
            E-mail
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Adress)
            @Html.ValidationMessageFor(model => model.Adress, "Введены некорректные данные!")
        </div>
 
        <div class="editor-label">
            Группа
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Group)
            @Html.ValidationMessageFor(model => model.Group, "Введены некорректные данные!")
        </div>
 
        <p>
            <input type="submit" value="Добавить" />
        </p>
    </fieldset>
}
 
<div>
    @Html.ActionLink("Вернуться к списку читателей", "Index")
</div>
 
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

Контроллер страницы выдачи книги:

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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcLibraly.Models;
using System.Web.Mvc.Html;
using System.Net.Mail;
using System.Net;
using System.Web.UI.WebControls;
using System.IO; 
 
 
namespace MvcLibraly.Controllers
{
    public class UchetController : Controller
    {
        private BookDBContext db = new BookDBContext();
 
        //
        // GET: /Uchet/ !!!!!!!!!!!!
 
        public ActionResult Index()
        {
            return View(db.Uchets.ToList());
        }
 
 
        [HttpPost]
        public ActionResult Index(Uchet uchet)
        {
            return View(uchet);
        }
 
 
        //
        // GET: /Uchet/Details/5
 
 
        //public ActionResult SearchIndex(string bookName, string searchString)
        //{
 
 
        //}
 
 
 
 
 
 
 
        public ActionResult Details(int id = 0)
        {
 
 
 
            Uchet uchet = db.Uchets.Find(id);
            if (uchet == null)
            {
                return HttpNotFound();
            }
            return View(uchet);
        }
 
        public ActionResult SearchIndex(string searchString)
        {
            var users = from m in db.Uchets
                        select m;
 
            if (!String.IsNullOrEmpty(searchString))
            {
                users = users.Where(s => s.Name.Contains(searchString));
            }
 
            return View(users);
        }
 
 
        //
        // GET: /Uchet/Create
 
        public ActionResult Create(string userName, string nameTitle, string nameAdress)
        {
            var NameLst = new List<string>();
 
            var NameQry = from b in db.Users
                          orderby b.Name
                          select b.Name;
            NameLst.AddRange(NameQry.Distinct());
            ViewBag.userName = new SelectList(NameLst);
 
            var TitleLst = new List<string>();
 
            var TitleQry = from r in db.Lib
                           orderby r.Title
                           select r.Title;
            TitleLst.AddRange(TitleQry.Distinct());
            ViewBag.nameTitle = new SelectList(TitleLst);
 
 
            var AdressLst = new List<string>();
 
            var AdressQry = from j in db.Users
                            orderby j.Name
                            select j.Adress;
            AdressLst.AddRange(AdressQry.Distinct());
            ViewBag.nameAdress = new SelectList(AdressLst);
 
 
 
 
 
            return View();
        }
 
        //
        // POST: /Uchet/Create
 
        [HttpPost]
        public ActionResult Create(Uchet uchet)
        {
            if (ModelState.IsValid)
            {
                db.Uchets.Add(uchet);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
 
            return View(uchet);
        }
 
        //
        // GET: /Uchet/Edit/5
 
        public ActionResult Edit(string userName, string nameTitle, string nameAdress, int id = 0)
        {
            var NameLst = new List<string>();
 
            var NameQry = from b in db.Users
                          orderby b.Name
                          select b.Name;
            NameLst.AddRange(NameQry.Distinct());
            ViewBag.userName = new SelectList(NameLst);
 
            var TitleLst = new List<string>();
 
            var TitleQry = from r in db.Lib
                           orderby r.Title
                           select r.Title;
            TitleLst.AddRange(TitleQry.Distinct());
            ViewBag.nameTitle = new SelectList(TitleLst);
 
 
            var AdressLst = new List<string>();
 
            var AdressQry = from j in db.Users
                            orderby j.Name
                            select j.Adress;
            AdressLst.AddRange(AdressQry.Distinct());
            ViewBag.nameAdress = new SelectList(AdressLst);
 
 
 
 
 
            Uchet uchet = db.Uchets.Find(id);
            if (uchet == null)
            {
                return HttpNotFound();
            }
            return View(uchet);
 
 
 
        }
 
        //
        // POST: /Uchet/Edit/5
 
        [HttpPost]
        public ActionResult Edit(Uchet uchet)
        {
            if (ModelState.IsValid)
            {
                db.Entry(uchet).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(uchet);
        }
 
        //
        // GET: /Uchet/Delete/5
 
        public ActionResult Delete(int id = 0)
        {
            Uchet uchet = db.Uchets.Find(id);
            if (uchet == null)
            {
                return HttpNotFound();
            }
            return View(uchet);
        }
 
        //
        // POST: /Uchet/Delete/5
 
        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            Uchet uchet = db.Uchets.Find(id);
            db.Uchets.Remove(uchet);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
 
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}

Представление страницы выдачи книги:

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
@model IEnumerable<MvcLibraly.Models.Uchet>
 
@{
    ViewBag.Title = "Выданные книги";
}
 
<h2>Выданные книги</h2>
 
<p>
    @Html.ActionLink("Выдать книгу", "Create")
    @using (Html.BeginForm()){    
         <p> Ф.И.О.: @Html.TextBox("SearchString") <br />   
         <input type="submit" value="Найти" /></p>
    } 
</p>
<table>
    <tr>
        <th>
            Читатель
        </th>
        <th>
            Адрес
        </th>
        <th>
            Книга
        </th>
        <th>
            Дата выдачи
        </th>
        <th>
            Дата возврата
        </th>
        <th></th>
    </tr>
 
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Adress)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DatePol)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DateVoz)
        </td>
        <td>
            @Html.ActionLink("Редактировать", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Просмотреть", "Details", new { id=item.ID }) |
            @Html.ActionLink("Удалить", "Delete", new { id=item.ID })
        </td>
    </tr>
}
 
</table>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 11:28
Ответы с готовыми решениями:

Проверить правильность введённого значения и вывод ответа(куда можно вывести?)
Здравствуйте. Решил заняться программированием, и начать с простого, и даже тут не получается....

Вывод значения предыдущей записи в форму
В форме существует поле со списком. В поле вносятся данные из списка. Значение сохраняется форма...

Выбор элемента в 1 DropDownListFor должен изменить список во 2 DropDownListFor
Добрый день! Плиз, подскажите. У меня есть два списка, как сделать так, чтобы выбор элемента в...

DropDownListFor не возвращает значения
Люююди помогите,а ? Сутки сижу и не могу решить проблему с этим адским элементом, интернет не...

Вывести Null значения из БД в DropDownListFor
Здравствуйте такой вопрос, мне нужно вывести в DropdownListFor, которые хранятся в базе, но...

7
Haravodec
27 / 27 / 5
Регистрация: 11.09.2012
Сообщений: 107
15.05.2014, 17:01 2
Так а где сам дропдаун то ? Для начала создайте его, передайте в модель список пользователей и заполните данными дропдаун.
0
Rustenity
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 4
15.05.2014, 17:35  [ТС] 3
Цитата Сообщение от Haravodec Посмотреть сообщение
Так а где сам дропдаун то ? Для начала создайте его, передайте в модель список пользователей и заполните данными дропдаун.
Упс, я вставил не ту вьюху страницы выдачи книги

Вот верная:

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
@model MvcLibraly.Models.Uchet
 
@{
    ViewBag.Title = "Выдача книги";
}
 
<h2>Выдача книги</h2>
 
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
 
    <fieldset>
        <legend>Uchet</legend>
 
        <div class="editor-label">
            Выберите читателя:
        </div>
        <div class="editor-field">
            @*@Html.DropDownList("userName", "Выберите читателя...", model.Name)*@
            @Html.DropDownListFor(model => model.Name, (SelectList)ViewBag.userName, new { style = "width: 310px" }) 
            @Html.ValidationMessageFor(model => model.Name, "Введены некорректные данные!")
        </div>
        
        <div class="editor-label">
            Выберите адрес:
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.Adress, (SelectList)ViewBag.nameAdress, new { style = "width: 310px" }) 
            @Html.ValidationMessageFor(model => model.Adress, "Введены некорректные данные!")
        </div>
 
 
        <div class="editor-label">
            Выберите название книги:
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.Title, (SelectList)ViewBag.nameTitle, new { style = "width: 310px" }) 
            @Html.ValidationMessageFor(model => model.Title, "Введены некорректные данные!")
        </div>
 
        <div class="editor-label">
            Выберите дату выдачи книги:
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.DatePol) 
            @Html.ValidationMessageFor(model => model.DatePol, "Введены некорректные данные!")
        </div>
 
        <div class="editor-label">
            Выберите дату возврата книги:
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.DateVoz)
            @Html.ValidationMessageFor(model => model.DateVoz, "Введены некорректные данные!")
        </div>
 
        <p>
            <input type="submit" value="Создать" />
        </p>
    </fieldset>
}
 
<div>
    @Html.ActionLink("Назад", "Index")
</div>
 
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}
0
Haravodec
27 / 27 / 5
Регистрация: 11.09.2012
Сообщений: 107
15.05.2014, 17:45 4
повесить на дропдаун Onchange который будет передавать в контроллер ID пользователя, и возвращать обновлённую модель.

например :

HTML5
1
@Html.DropDownListFor(model => model.MerchantConfig.Id, Model.MerchantSelectList, new { onchange = "OnDropDownChangeEvent(this, 'Merchants', 'MerchantConfiguration');" })
Javascript
1
2
3
4
function OnDropDownChangeEvent(dropDownElement, controller, action) {
    var selectedValue = dropDownElement.options[dropDownElement.selectedIndex].value;
    document.location = "/" + controller + "/" + action + "/" + selectedValue;
}
0
Rustenity
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 4
15.05.2014, 18:03  [ТС] 5
Ничего не понял...(
0
Haravodec
27 / 27 / 5
Регистрация: 11.09.2012
Сообщений: 107
15.05.2014, 18:23 6
нужно передать выбранный элемент в дропдауне в контроллер, в данном контроллере получить все необходимые данные по этому элементу и отправить во вью.

HTML5
1
2
3
4
@Html.DropDownListFor(model => model.Name,
    (SelectList)ViewBag.userName, 
    new { style = "width: 310px", 
    onchange = "OnDropDownChangeEvent(this, 'Uchet', 'SearchIndex');"  })
также добавить роут

C#
1
2
3
4
5
routes.MapRoute(
                "Uchet",
                "Uchet/SearchIndex/{searchString}",
                new { controller = "Uchet", action = "SearchIndex", searchString = UrlParameter.Optional }
                );
0
Rustenity
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 4
15.05.2014, 18:52  [ТС] 7
Так, уже понятнее) А роут в контроллер вставить?)

З.Ы. Просто я недавно начал Асп изучать, вот и не совсем въезжаю, а диплом то писать надо...
0
Haravodec
27 / 27 / 5
Регистрация: 11.09.2012
Сообщений: 107
16.05.2014, 10:46 8
А роут в контроллер вставить?)
нет, почитайте где и как регистрируются роуты.
0
16.05.2014, 10:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 10:46

Передача значения из View (DropDownListFor) в модель
Есть 2 модели public class Country { public Guid Id { get; set; } ...

DropDownListFor и ListBox - получить значения выделенных элементов
Получение список, для заполнения DDL и ListBox в контроллере public ActionResult...

Замените все четные значения введённого с клавиатуры массива нулями и вывести скорректированные значения (с помощью указателей)
Дорогие форумчане! Помогите пожалуйста с заданием!:cry: Введите с...


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

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

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