49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
1

Как правильно передать заполненную модель бизнес логике модели представления

22.11.2013, 17:18. Показов 1348. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Есть задача передать заполненную бизнес модель на модель представления...

C#
1
2
3
4
5
6
7
8
 public ActionResult EditUser(int User_id)
        {
            UserVM user = new UserVM(); //это модель представления
 
            user = userManager.GetUserByIdUPAForAdm(User_id);  //в проекте бизнес логики эта GetUserByIdForAdm фун получает данные и наполняем ими свою бизнес модель, ее (бизнес) модель и возвращает.
 
            return PartialView("_EditUser");
        }
Естественно атрибуты обоих представлений идентичны, но я получаю ошибку:

Error 1 Cannot implicitly convert type 'BusinessLayer.User.UsersForAdm' to 'WEB.Models.UserVM'

Первый раз сие делаю, подскажите пж что не так....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2013, 17:18
Ответы с готовыми решениями:

Как передать Exception из бизнес логики на уровень представления?
Как правильно передать ошибку (ексепшн) из бизнес логики в интерфейс. Сейчас все просто пишется в...

Как правильно сделать модель и представления?
Доброго Времени Суток, уважаемые форумчане! Созрел вопрос.. Делаю функционал, грубо говоря темы...

mvvm : как в модель представления передать имя колонки DataGrid?
Уважаемые Гуру! Есть userControl на котором DataGrid. В модели представления делаю фильтр данных....

Как сделать "плоскую" модель представления из иерархических классов доменной модели?
Всем привет! голову ломаю не могу решить свою проблему. Имеется три сущности в доменной модели,...

4
4 / 4 / 0
Регистрация: 25.12.2012
Сообщений: 22
22.11.2013, 18:31 2
можно создать статический класс с конверторами из бизнес модели в веб , используя методы расширения и потом использовать его когда нужно получить модель

пример (метод toDto())

C#
1
2
3
UserMessageOperationResultSet sendOperationResult = CallService(service => service.SendNewMessage(message.ToDto(), members));
            if (sendOperationResult.Status != MessagesOperationStatus.Success)
                throw new Exception("Не удалось отправить сообщение");
сам класс с расширяющими методами


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
public static class MappingExtensions
    {
        #region Диалоги и сообщения
        public static Dialog.DialogItem ToWeb(this MessageGroup source)
        {
            return source == null ? null : new Dialog.DialogItem
            {
                DocDate = source.CreateDate,
                ID = source.ID,
                LastMessage = source.LastMessage.ToWeb(),
                MainMessage = source.MainMessage.ToWeb(),
                Members = source.Members.Select(item => (new UserProfileModel()).Assign(item)).ToList(),
                HasNewMessages = source.HasNewMessages
            };
        }
 
        public static MessageGroup ToDto(this Dialog.DialogItem source)
        {
            return source == null ? null : new MessageGroup
            {
                CreateDate = source.DocDate,
                ID = source.ID,
                LastMessage = source.LastMessage.ToDto(),
                MainMessage = source.MainMessage.ToDto(),
                Members = source.Members.Select(item => (new UserProfile()).Assign(item)).ToList(),
            };
        }
}
Добавлено через 1 минуту
или использовать одну модель
1
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
22.11.2013, 18:36  [ТС] 3
спасибо, уже взялся пробовать Automapper, если не получится пробану этим методом.
0
6 / 6 / 0
Регистрация: 29.07.2013
Сообщений: 55
22.11.2013, 18:43 4
action выглядит неопределенно..., ну то такое.
может в UserVM создать проперти типа возвращаемого userManager.GetUserByIdUPAForAdm(User_id)? если, конечно, такое для данного случая подходит.
а по поводу преобразования одного класса в другой, если нет наследования - есть Explicit and Implicit Operators.
0
49 / 49 / 12
Регистрация: 24.10.2012
Сообщений: 434
22.11.2013, 18:45  [ТС] 5
Цитата Сообщение от AndreyIvaneneko Посмотреть сообщение
action выглядит неопределенно..., ну то такое.
может в UserVM создать проперти типа возвращаемого userManager.GetUserByIdUPAForAdm(User_id)? если, конечно, такое для данного случая подходит.
а по поводу преобразования одного класса в другой, если нет унаследования - есть Explicit and Implicit Operators.
сколько нового, спасибо, буду разбираться.


action выглядит неопределенно...
---
а тут не могли бы пояснить, почему неопределенно?
0
22.11.2013, 18:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2013, 18:45
Помогаю со студенческими работами здесь

Я теряю данные на пути Controller-View-Controller. Как правильно получить модель из представления?
У меня есть модель, которая содержит несколько свойств. Есть List<Point> и ThranslatingCam....

Как взаимодействуют модель представления и представление
Здравствуйте! У меня на самом деле есть целая куча вопросов по MVVM. Что такое модель я вроде...

Как передать данные с представления в контроллер?
Всем доброго времени суток ;) Подскажите, пожалуйста, какой код нужно написать внутри тега...

Symfony 2: как правильно организовать бизнес-логику?
Всем привет! Вот я недавно начал один проект на Symfony 2 и сразу же столкнулся одной проблемой -...


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

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

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