Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Trukhanov_VP
37 / 37 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
1

Связи таблиц, обращение данных и передача данных из view во view

13.08.2014, 11:10. Просмотров 406. Ответов 0
Метки нет (Все метки)

Есть две таблицы: person и driver. В таблице person первичный ключ, driver - хранится внешний ключ. Следовательно в вроекте model:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// person
public partial class person
{
 public person
 {
   this.driver = new HashSet<driver>();
 }
 public int id_person { get; set; }
 public string fam { get; set; }
 //и др поля
 public virtual ICollection<driver> driver { get; set; }
}
// driver
public partial class driver
{
 public int id_driver { get; set; }
 public int id_person { get; set; }
 //и др поля
 public virtual person person { get; set; }
}

С этим все понятно.
Когда вывожу в Index все записи из таблицы person, в controller пишу:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
//personController
public ActhionResult Index()
{
var person = db.person.Include(p => p.driver).ToList());
return View(person);
}

т.е. у каждого записи person, есть несколько записей из driver, так называемая коллекция. Отсюда вопрос: 1. Как обратиться к конкретной записи из коллекции во View или как обратиться сразу ко всей коллекции и вывести ее во View ?
Так как, я не решил вопрос выше, пошел другим путем. Сделал ссылку при открытии на редактирование записи person:
Кликните здесь для просмотра всего текста
C#
1
@Html.ActionLink("Водительская справка", "Index", "driver", new { id = Model.id_person}, null)

на View, в которой вывожу все записи driver, которые собственно отбираю с помощью передаваемого параметра:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
// driver controller
public ActionResult Index(int id = 0)
{
var driver = db.driver.Include(s => s.person).Where(s => s.id_person == id);
return View(driver.ToList());
}

Например, требуется создать еще одну запись в driver: 2. Как запомнить или передать идентификатор для поля id_person в driver ?
Пытаюсь его присвоить в Index, а он обнуляется потом.
Заранее скажу, так как существует связь можно сделать так:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
// driver controller
ViewBag.id_person = new SelectList(db.person, "id_person", "fam");
// driver view
@Html.DropDownListFor(model => model.id_person, ViewBag.id_person as SelectList)

, но это логически не подходит, думаю понятно почему.

Добавлено через 1 час 2 минуты
Наткнулся на пример, думаю то, что нужно.

Добавлено через 25 минут
Собственно вот ответ на мой первый вопрос:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@if (Model.driver != null)
{
<table>
<tr>
<th>id_driver</th>
<th>id_person</th>
</tr>
@foreach (var item in Model.driver)
{
<tr>
<td>
@item.id_driver
</td>
<td>
@item.id_person</td>
</tr>
}
</table>
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2014, 11:10
Ответы с готовыми решениями:

Вывод данных из двух таблиц во view
Здравствуйте. В базе есть две таблицы. Вывожу во View данные из них с помощью foreach. То есть у...

Передача данных из View в контроллер
Здравствуйте! Есть контроллер Home и action &quot;Indexx&quot; с атрибутом httpPost. Действие принимает...

Передача из View в Controllers динамических данных
Здравствуйте! У меня получается получить статические данные &quot;formHead&quot;, но не получается...

Передача данных, отображенных во View, в Controller
Здравствуйте, товарищи! Есть вюха корзины, которая отображает выбранные товары: @model...

Передача данных из Index.cshtml (View/Home) в Program.cs
Привет! Простите за глупый вопрос, но у меня типа первый раз с MVC3.. Index.cshtml : ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 11:10

Отображение данных во View
Доброго времени суток, вывел таблицу с данными: public class price { public int id {...

Загрузка данных во View
Доброго дня ! Пробую работать MS VS2008 . Возник вопрос можно ли загрузить в связку MultiView...

Как передать параметры из одного View в EditorFor другого View
Здравствуйте. Есть 2 view, первое просто отображает данные, 2 должно их редактировать, в 1 view...


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

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

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