powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC отображение данных на странице
12 сообщений из 12, страница 1 из 1
ASP.NET MVC отображение данных на странице
    #38689670
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

Я новичок в ASP.NET MVC, перешел с ASP.NET Web Forms.

Есть Controllers

Код: 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.
public ActionResult Confirmation(string apt, int iD)
        {
            wexReposittory wex = new wexReposittory();

            if (apt == "PurchaseCall")
            {
                if (iD == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                else
                {
                    return View(wex.GetPurchaseCallById(iD));
                }
            }
            if (apt == "PayQuerry")
            {
                if (iD == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                else
                {
                    return View(wex.GetPayQuerryById(iD));
                }
            }

            return View();
        }



wexReposittory.cs

Код: 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.
public class wexReposittory
    {
        private WDbModel con;

        public wexReposittory()
        {
            con = new WDbModel();
        }

public IEnumerable<vPurchaseCall> GetPurchaseCallById(int iD)
        {
            IEnumerable<vPurchaseCall> getPurchaseCall =
                from x in con.vPurchaseCalls.AsEnumerable()
                where x.PCL_ID == iD
                select x;
            return getPurchaseCall;
        }

public IEnumerable<vPayQuerry> GetPayQuerryById(int iD)
        {
            IEnumerable<vPayQuerry> getPayQuerry =
                 from x in con.vPayQuerries.AsEnumerable()
                 where x.PPQ_ID == iD
                 select x;
            return getPayQuerry;
        }
}



Из этого видно, что у меня две модели.

Confirmation.cshtml

Как мне отобразить их по условию как в контролере?. ( можно конечно 2 страницы сделать и все прекрасно вывести )

если по одному то вот так

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@using WEX.Models
@model IEnumerable<vPayQuerry>

@foreach (vPayQuerry pq in Model)
        {
ID: pq.ID
}



И то для одной записи наверно не так все делать, без понятия. (подскажите)

Спасибо, заранее благодарен.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689689
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а) Модель в представлении надо привести к общему для обоих вариантов классу (например базовому для них обоих)

б) Активно использовать частичные представления. Базовая модель пусть использует IEnumerable и реализует общий код, а частичные представления уже содержат код под конкретные подтипы IEnumerable<?>
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689700
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа) Модель в представлении надо привести к общему для обоих вариантов классу (например базовому для них обоих)

а если данные разные в обоих моделях? ( как обойти )

Shocker.Proа)
б) Активно использовать частичные представления. Базовая модель пусть использует IEnumerable и реализует общий код, а частичные представления уже содержат код под конкретные подтипы IEnumerable<?>

Не понял что вы имели введу.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689722
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591Shocker.Proа) Модель в представлении надо привести к общему для обоих вариантов классу (например базовому для них обоих)

а если данные разные в обоих моделях? ( как обойти )Причем тут данные? Если у классов есть общие поля, методы и т.п., а представление имеет общий для обоих классов код, то у этих классов должен быть общий базовый класс, либо общий интерфейс.


wiktor591Shocker.Proб) Активно использовать частичные представления. Базовая модель пусть использует IEnumerable и реализует общий код, а частичные представления уже содержат код под конкретные подтипы IEnumerable<?>

Не понял что вы имели введу.У вас есть представление, которое делает некоторые общие действия для обоих классов и некоторые действия персонально под каждый класс. Действия, заточенные под каждый конкретный класс выносятся в отдельные частичные представления, которые вызывает основное представление @Html.RenderPartial
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689731
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proа)
Причем тут данные? Если у классов есть общие поля, методы и т.п., а представление имеет общий для обоих классов код, то у этих классов должен быть общий базовый класс, либо общий интерфейс.


Слушай у тебя в одной модели тип данных может быть разным. Как ты сделаешь чтоб совместить две модели в одну? ( я тебя не понимаю ) Приведи пример, мне будет яснее.

Shocker.Proа)
У вас есть представление, которое делает некоторые общие действия для обоих классов и некоторые действия персонально под каждый класс. Действия, заточенные под каждый конкретный класс выносятся в отдельные частичные представления, которые вызывает основное представление @Html.RenderPartial


Приведи пример, чтоб я понял тебя.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689734
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда для начала ответь на вопрос, почему ты пытаешься для двух СОВЕРШЕННО РАЗНЫХ (по твои словам) моделей сделать ОДНО представление, а не разные?
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689745
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если брать твой пример, где печатаются ID-шники из списка, то

1) делаешь интерфейс, представляющий одно поле int ID - IMyInterface

2) реализуешь этот интерфейс на своих классах vPayQuerry : IMyInterface, vPurchaseCall : IMyInterface

3) модель для представления:
Код: c#
1.
2.
3.
4.
5.
6.
@model IEnumerable<IMyInterface>

@foreach (IMyInterface pq in Model)
        {
ID: pq.ID
}
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38689781
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTW - бессмысленный кусок кода (дважды):
Код: c#
1.
2.
3.
4.
5.
                if (iD == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                else

так как iD объявлен как int
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38690120
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТогда для начала ответь на вопрос, почему ты пытаешься для двух СОВЕРШЕННО РАЗНЫХ (по твои словам) моделей сделать ОДНО представление, а не разные?

У меня был реализован этот проект в ASP.NET Web Forms и я использовал одну страницу для вывода информации по разным данным.

Вот и спросит по MVC, можно ли сделать так. ( про две модели )

Можно сделать 2 страницы и будет все отлично выводить. ( но меня интересовало вывод на одной ) Данные в модели практически одинаковые, в некоторых местах типы данных разные. ( но по сути все можно запихать в одну модель ) ( но это какой-то слон получается ) - хотелось узнать оптимальное решение - а не городить целые горы кода, которые приведут в итоге к нежелательному результату с точки зрения оптимизации.

Спасибо.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38690170
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не спрашивал про историю свадьбы бабушки.

Какая объективная необходимость делать одно представление на разные модели? Общий код? Если нет общего кода, то должно быть два разных представления. Если общий код есть, то:

а) делается более обобщенная модель на оба класса (например с помощью интерфейсов, пример я привел 16271579 )

б) делается базовое представление, которое реализует общую для обеих моделей логику, а специфические действия для каждой модели выводятся в частичные представления и вызываются с помощью RenderPartial из базового представления. При этом в базовом представлении также можно применять обобщенную логику, как в п.а), а во вложенные представления передавать уже приведенную вниз модель.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38690206
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Спасибо, я просто думал еще есть другие способы.
...
Рейтинг: 0 / 0
ASP.NET MVC отображение данных на странице
    #38690220
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wiktor591другие способы.технически можно, конечно, хоть сто моделей запихнуть в одно представление, если вам нравятся особенные извращения...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC отображение данных на странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]