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

Как получить доступ к отдельным элементам списка

27.02.2013, 13:44. Показов 2067. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,
сделала простой проект, в котором отображается таблица даннных.
У меня вопрос: Как я могу получить доступ к отдельным элементам списка? Не могу нигде найти ответа.
Привожу свой код:
1. Я создала модель
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
 
namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
 
    }
 
    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
 
}
2. Сделала контролер
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcMovie.Models;
 
namespace MvcMovie.Controllers
{
    public class MoviesController : Controller
    {
        private MovieDBContext db = new MovieDBContext();
 
        //
        // GET: /Movies/
 
        public ActionResult Index()
        {
            return View(db.Movies.ToList());
        }
...
3. Сделала представление
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
@model IEnumerable<MvcMovie.Models.Movie>
 
@{
    ViewBag.Title = "Index";
}
 
<h2>Index</h2>
 
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Title)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.ReleaseDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Genre)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th></th>
    </tr>
 
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}
 
</table>
Вот, в представлении выводится весь список по элементно... А мне нужно, что б выводился только конкретеый фильм из списка.
Например:
Хороший фильм. Комедия. 01/02/2013. 150 руб.

Как этого добиться? Может кто сталкивался с этим?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2013, 13:44
Ответы с готовыми решениями:

Как получить доступ к элементам списка?
У меня есть список в который заносятся значения полей из БД private void...

Список: Как разобраться с типами данных и получить доступ к элементам списка?
входным параметром является список, который запихивают в метод следующим образом:...

Доступ к отдельным элементам матрицы
Здравствуйте из массива A3, не могу вынести две точки соответственно и . Расположены в таком...

Как получить доступ к элементам вектора
Нашел вот такой код. А вот как получить доступ к элементам вектора? FILE *ToWrite =...

13
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
27.02.2013, 14:49 2
C#
1
var item = Model.First(o => o.ID == 12);
где 12 - ID конкретного фильма
1
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
27.02.2013, 15:04  [ТС] 3
Спасибо,
а если мне нужно в моем представлении в 1 части страницы отобразить например только 2 фильма из списка, а в другой части страницы еще 2 фильма из списка ( в списке 20 фильмов). КАк тогда быть?
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
27.02.2013, 15:29 4
Ну сделать несколько таких выборок, сколько надо. Если надо делать отбор не по ID ,а по другим признакам, например к жанру, то почитайте про LINQ, в вашем случае LinqToObject и LinqTtEntity. Мой предыдущий пример строки так же является элементом LINQ.
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
27.02.2013, 15:47  [ТС] 5
Цитата Сообщение от obrazer Посмотреть сообщение
C#
1
var item = Model.First(o => o.ID == 12);
где 12 - ID конкретного фильма
Это в контроллере прописывать нужно или в представлении?
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
27.02.2013, 16:42 6
В представлении. Если вместо
C#
1
foreach (var item in Model)
то нижестоящие строчки выведут всего одну запись.
1
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
27.02.2013, 18:03  [ТС] 7
Не работает...
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
27.02.2013, 18:55 8
А что не работает? Ошибка какая-то, не компилируется, не выводит, выводит, но не так?
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
27.02.2013, 19:07  [ТС] 9
Я думаю, что я запутулась в синтаксисе...
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var item = Model.Movie(o => o.ID == 12);
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
Пишет, ято ошибка в коде . Ошибка при компиляции, название item не существует...
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
28.02.2013, 12:28 10
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@{
var item = Model.Movie(o => o.ID == 12);
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}
0
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
28.02.2013, 14:40  [ТС] 11
Не работает, пишет, что Model.Movie не существует в контексте.

попробовала прописать var item = db.Movies.ToList(o => o.ID == 2); результат тот же,
попробовала разные варианты:
var item = movie(o => o.ID == 2);
var item = Model.movie(o => o.ID == 2);
var item = Movie.movie(o => o.ID == 2);
ничего не выходит...
0
73 / 73 / 3
Регистрация: 04.09.2012
Сообщений: 170
28.02.2013, 16:14 12
Цитата Сообщение от Karta Посмотреть сообщение
Не работает, пишет, что Model.Movie не существует в контексте.
А как ранее работало?

Вероятно не подключен неймспейс в предствлении

Добавлено через 20 минут
А, ну логично, что такое Movie для Model?

Судя по коду Model - это перечисляемый список объектов типа Movie.
Вот тут вы сделали ошибку (у меня в коде было по другому )
var item = Model.Movie(o => o.ID == 12);
должно быть так
var item = Model.First(o => o.ID == 12);

ps: А я просто скопировал ваш пример и добавил скобки, посему и в мой пост вкралась ошибка, изначально предлагаемая строчка была правильная
1
5 / 5 / 2
Регистрация: 04.06.2009
Сообщений: 147
03.03.2013, 13:58  [ТС] 13
Еще раз спасибо, все работает!
0
98 / 96 / 15
Регистрация: 28.03.2011
Сообщений: 565
04.03.2013, 13:18 14
---------------
0
04.03.2013, 13:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2013, 13:18
Помогаю со студенческими работами здесь

как получить доступ к элементам формы qt
Есть класс-наследник QDialog, у которого метод работает с элементами формы другого класса....

Как получить доступ к элементам List<T>?
В msdn написано что у класса List&lt;T&gt; есть свойство Item, через которое можно получить доступ к...

Как получить доступ к qml элементам из с++
здравствуйте. пытаюсь управлять формой из срр, но получаю сегфолт. в qml при нажатии на кнопку...

Как получить доступ к элементам массива в классе?
Есть класс, в нем определен массив объектов. Можно ли через свойства получать доступ и...


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

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