Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
всем привет. Уважаемые "ГУРУ" можно по задавать немного "глупых" вопросов, отсюда Посоветуйте open-source проект на ASP.net MVC я взял для примера "NoopCommerce", в своем приложении сделал "разслоение" на следующие проекты: "Core" - здесь DAL, и Domain model; "Data" - здесь DbContext и реализация интерфейса репозитория; "Service" - здесь работа с моделью ну и "Web" - ASP.NET MVC проект где должны быть классы описывающие ViewModel? в Web? как заложить логику доступности тех или иных операций(Добавление/Редактирование/Удаление)? в голову приходит только добавление признака возможности операции и в сервисном слое возвращать список с уже установленными признаками? только это спрячет кнопку но не возможность в строке адреса указания метода, здесь я вижу тока вынесения проверки на доступность той или иной операции в отдельную функцию и при вызове метода выполнять данную проверку. если не сложно то по возможности приведите пример как бы это сделали Вы, с поправкой на новичка:).заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 13:39 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusгде должны быть классы описывающие ViewModel? в Web? да bald56rusкак заложить логику доступности тех или иных операций(Добавление/Редактирование/Удаление)? в простом случае на уровне ролей и атрибута [Authorize(Roles="Editor")] для каждого метода/контроллера bald56rusв голову приходит только добавление признака возможности операции и в сервисном слое возвращать список с уже установленными признаками? только это спрячет кнопку но не возможность в строке адреса указания метода, здесь я вижу тока вынесения проверки на доступность той или иной операции в отдельную функцию при работе с ASP.NET MVC/WebAPI запомни одно правило: если что-то можно оформить/закодить в виде фильтра, значит делай фильтр! Этот фреймворк очень широко использует аспекты, которыми надо пользоваться на всю катушку. Т.е. если тебе не хватает стандартного атрибута (фильтра) Authorize, которому список ролей надо указывать сразу, а у тебя данные о доступности операций для пользователя хранятся как-то иначе, значит делай свой фильтр MyAuthorize, который берёт текущего пользователя, и определяет доступна ли данная операция (операцию можно указывать в параметрах атрибута или вытаскивать из мета-данных экшена). Конкретный пример дать не могу, так как мало информации. Постарайся сделать что-нибудь сам, если что-то будет получаться/неполучаться, скидывай сюда, обсудим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 14:48 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVostt добавлю немного конкретики: есть следующий набор класов: Код: 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. для одной операции может быть от 1 до n программ. программы могут быть утверждены актом. мне необходимо заложить след. логику. запретить редактирование операции при наличии прикрепленных программ если программы утверждена. в остальных т.е. здесь логика не на уровне доступа пользователя а по опр. условия. как это можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 17:10 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusв своем приложении сделал "разслоение" на следующие проекты: "Core" - здесь DAL, и Domain model; "Data" - здесь DbContext и реализация интерфейса репозитория; "Service" - здесь работа с модельюА что такое у Вас DAL, что он делает в Core, если "реализация интерфейса репозитория" в Data? bald56rusну и "Web" - ASP.NET MVC проект где должны быть классы описывающие ViewModel? в Web?Да в Web. bald56rusкак заложить логику доступности тех или иных операций(Добавление/Редактирование/Удаление)?Можно как отдельный SecurityService в DomainModel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 18:39 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
skyANA, в DAL у меня вот что: Код: 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. а в Data у меня реализация этого интерфейса, пример из проекта который указал в первом сообщении.а можно поподробнее про SecurityService, если несложно то с примером.заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 18:47 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rus, Data и DAL - это единый слой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 18:49 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Здесь показана очень хорошо архитектура: http://efmvc.codeplex.com/ https://github.com/EgorBo/CrossChat-Xamarin.Forms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 22:15 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusдля одной операции может быть от 1 до n программ. программы могут быть утверждены актом. мне необходимо заложить след. логику. запретить редактирование операции при наличии прикрепленных программ если программы утверждена. в остальных т.е. здесь логика не на уровне доступа пользователя а по опр. условия. как это можно сделать? Алгоритм фильтра: 1. Получить в параметрах фильтра тип действия (чтение, редактирование, удаление) 2. Получить в зависимостях фильтра сервис для доступа к операциям 3. Извлечь из контекста контроллера, который передан фильтру, параметры действия (например, ID операции) 4. Извлечь операцию из сервиса по ID (сервис в свою очередь достанет её из репозитория) 5. Сделать необходимые проверки операции (проверить наличие прикреплённых программ) 6. В зависимости от переданного типа действия в параметрах фильтра разрешить или запретить это действие Потом юзаешь этот фильтр на действиях контроллера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 00:31 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttbald56rusдля одной операции может быть от 1 до n программ. программы могут быть утверждены актом. мне необходимо заложить след. логику. запретить редактирование операции при наличии прикрепленных программ если программы утверждена. в остальных т.е. здесь логика не на уровне доступа пользователя а по опр. условия. как это можно сделать? Алгоритм фильтра: 1. Получить в параметрах фильтра тип действия (чтение, редактирование, удаление) 2. Получить в зависимостях фильтра сервис для доступа к операциям 3. Извлечь из контекста контроллера, который передан фильтру, параметры действия (например, ID операции) 4. Извлечь операцию из сервиса по ID (сервис в свою очередь достанет её из репозитория) 5. Сделать необходимые проверки операции (проверить наличие прикреплённых программ) 6. В зависимости от переданного типа действия в параметрах фильтра разрешить или запретить это действие Потом юзаешь этот фильтр на действиях контроллера. дошел до 4 пункта. что то не соображу как в фильтр передать сервис. в инете в примере что то типа такого: Код: c# 1. но я так понимаю это не есть хорошо.подскажите пож. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 12:06 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
вопрос снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2015, 14:41 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVostt, можно уточню насчет фильтров.более или менее разобрался. как лучше оформить фильтр: единый фильтр в котором заложена вся логика(т.е. фильтр на контроллер), либо разбиение на мелкие фильтры для каждого конкретного действия. я больше склоняюсь ко второму. заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 06:54 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rushVostt, можно уточню насчет фильтров.более или менее разобрался. как лучше оформить фильтр: единый фильтр в котором заложена вся логика(т.е. фильтр на контроллер), либо разбиение на мелкие фильтры для каждого конкретного действия. я больше склоняюсь ко второму. заранее спасибо Если можно сделать более универсальный фильтр, лучше делать универсальный. Если в таком случае код фильтра получается слишком громоздкий и неповоротливый, тогда лучше делать более мелкие фильтры. Ещё вариант сделать параметризованный фильтр. Т.е. сам код фильтра один, но он применяется к каждому конкретному действию, но с разными параметрами -- это самый удобный компромисс. Меньше кода, больше гибкости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 07:34 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVostt, а можно пример параметризованного фильтра(если не сложно), и еще вопрос, не знаю как сформулировать попробую так: я нахожусь по определенному URL( http://localhost:51882/Operations/Details/1) на данной страничке у меня есть ссылки на методы действий в другом контроллере, как мне вернуться суда же после выполнения методов? Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:26 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusя нахожусь по определенному URL( http://localhost:51882/Operations/Details/1) на данной страничке у меня есть ссылки на методы действий в другом контроллере, как мне вернуться суда же после выполнения методов? Заранее спасибо В плане это? Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:29 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Axeleron, да так я умею, возвращать из метода.было интересно услышать как делают более опытные люди.это же наверно не единственный способ, я так подразумеваю что есть иной способ: например я перехожу по ссылке, и попадаю в окно авторизации, после успешного логина меня возвращает туда куда я шел первоначально. термина не знаю.поэтому пишу так как понимаю сам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:43 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusAxeleron, да так я умею, возвращать из метода.было интересно услышать как делают более опытные люди.это же наверно не единственный способ, я так подразумеваю что есть иной способ: например я перехожу по ссылке, и попадаю в окно авторизации, после успешного логина меня возвращает туда куда я шел первоначально. термина не знаю.поэтому пишу так как понимаю сам Какая задача? Конкретнее можно, что именно нужно? Или просто чего-то понавороченнее хочется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:46 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusAxeleron, да так я умею, возвращать из метода.было интересно услышать как делают более опытные люди.это же наверно не единственный способ, я так подразумеваю что есть иной способ: например я перехожу по ссылке, и попадаю в окно авторизации, после успешного логина меня возвращает туда куда я шел первоначально. термина не знаю.поэтому пишу так как понимаю сам для обратной ссылки в параметрах Url можно передавать returnUrl: Код: c# 1. А затем после выполнения действия возвращать пользователя на переданный параметр returnUrl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:48 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusа можно пример параметризованного фильтра(если не сложно) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 13:51 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Axeleronbald56rusAxeleron, да так я умею, возвращать из метода.было интересно услышать как делают более опытные люди.это же наверно не единственный способ, я так подразумеваю что есть иной способ: например я перехожу по ссылке, и попадаю в окно авторизации, после успешного логина меня возвращает туда куда я шел первоначально. термина не знаю.поэтому пишу так как понимаю сам Какая задача? Конкретнее можно, что именно нужно? Или просто чего-то понавороченнее хочется? конкретная задача: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Index.cshtml список операций, по кнопке Detail отображаю детальную инфу: какая то инфа по операции, плюс список программ для данной операции, в данном детальном окне возможно создать/редактировать программу, т.е. у меня есть методы которые позволяют это сделать, т.е. из окна детальной инф. об операции я попадаю в окно создания/редактирования программы, после успешного выполнения операции создания/редактирования вернуться в окно детальной информации с которого все начиналось. как то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 14:13 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rus, Ну и в чем заключается проблема? В определении откуда пришел, чтобы вернуться обратно после успешного выполнения операции создания/редактирования в окно детальной информации с которого все начиналось? Если так, то сделайте как посоветовал hVostt выше, передавая url для возврата и используйте его для построение Html.ActionLink. А по поводу Вашей модели - там, похожу, рекурсия, что неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 14:34 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Axeleronbald56rus, Ну и в чем заключается проблема? В определении откуда пришел, чтобы вернуться обратно после успешного выполнения операции создания/редактирования в окно детальной информации с которого все начиналось? Если так, то сделайте как посоветовал hVostt выше, передавая url для возврата и используйте его для построение Html.ActionLink. А по поводу Вашей модели - там, похожу, рекурсия, что неправильно. по поводу совета выше я понял, просто Вы просили конкретнее я и написал. не знал как это сделать поэтому спросил.а можно конкретнее по поводу неправильности модели!? почему не правильно? для одной операции может быть несколько программ, для конкретной программы можно получить операцию для которой она применяется. данные навигационные поля я планирую использовать в связке с "AutoMapper"ом для построения "представления" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 14:57 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusпочему не правильно? для одной операции может быть несколько программ, для конкретной программы можно получить операцию для которой она применяется. Тогда норм :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2015, 15:01 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
подскажите пож. кто как делает фильтрацию данных?! т.е. у меня есть следующая модель Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. хочу предоставить пользователю возможность фильтровать по указанным полям, как это сделать, если можно то с примером. заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 18:30 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rus, Создать action method в контроллере и передавать модель в него, а контролер уже валидирует данные и посылает запрос в БД на выборку данных по фильтру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 18:37 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Axeleronа контролер уже валидирует данные и посылает запрос в БД на выборку данных по фильтру не-не. контроллер превращает полученные данные на фильтрацию в объект, содержащий фильтры, сортировку и пейджинг и отправляет это всё в бизнес-логику. последняя делает всё, что требуется, возвращает данные, которые контроллер намапливает во вью-модель и отдаёт во вью или клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 18:46 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttAxeleronа контролер уже валидирует данные и посылает запрос в БД на выборку данных по фильтру не-не. контроллер превращает полученные данные на фильтрацию в объект, содержащий фильтры, сортировку и пейджинг и отправляет это всё в бизнес-логику. последняя делает всё, что требуется, возвращает данные, которые контроллер намапливает во вью-модель и отдаёт во вью или клиенту. Я упростил немного человеку для понимания, ты слишком правильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 18:49 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
AxeleronЯ упростил немного человеку для понимания, ты слишком правильный. а вы только в соседней ветке вместе со скайАной терзали бедного человека на части, так ничего же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:15 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttAxeleronЯ упростил немного человеку для понимания, ты слишком правильный. а вы только в соседней ветке вместе со скайАной терзали бедного человека на части, так ничего же? Там случай дохлый совсем - что человеку не скажи, он все равно станет vNext использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:25 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
AxeleronТам случай дохлый совсем - что человеку не скажи, он все равно станет vNext использовать. Ну так он же изначально не спрашивал какую технологию выбирать, всего лишь по структуре папок был вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:32 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttAxeleronТам случай дохлый совсем - что человеку не скажи, он все равно станет vNext использовать. Ну так он же изначально не спрашивал какую технологию выбирать, всего лишь по структуре папок был вопрос. Ну так мы ему помогли разобраться со всем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:37 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttAxeleronа контролер уже валидирует данные и посылает запрос в БД на выборку данных по фильтру не-не. контроллер превращает полученные данные на фильтрацию в объект, содержащий фильтры, сортировку и пейджинг и отправляет это всё в бизнес-логику. последняя делает всё, что требуется, возвращает данные, которые контроллер намапливает во вью-модель и отдаёт во вью или клиенту. а можно поподробнее? на контролере я бы сделал как то так: Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 20:56 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusа можно поподробнее? на контролере я бы сделал как то так: слишком громоздко. вот здесь есть либа и примеры, как собирать дескрипторы сортировок, фильтров и строить запросы LINQ динамически https://github.com/kendo-labs/dlinq-helpers ну и таких решений пруд пруди. по сути каждый их сам себе рисует, велосипедостроение в этом направлении неискоренимо )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 21:27 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Всем привет. подскажите пож. на сколько правильным будет следующее решение: мне необходимо в моем приложении работать с файловой системой, т.е. создавать файлы, каталоги, проверять наличие файлов, архивировать(для того что бы получить то что было сохранено). я это представляю как создание и реализация данного интерфейса в сервисном слое с необходимым функционалом и вызов в необходимом мне месте. я правильно представляю? заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 09:53 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusВсем привет. подскажите пож. на сколько правильным будет следующее решение: мне необходимо в моем приложении работать с файловой системой, т.е. создавать файлы, каталоги, проверять наличие файлов, архивировать(для того что бы получить то что было сохранено). я это представляю как создание и реализация данного интерфейса в сервисном слое с необходимым функционалом и вызов в необходимом мне месте. я правильно представляю? заранее спасибо да, всё правильно. возможно стоит подумать о выносе реализации сервиса для работы с файловой системой отдельно (именно реализацию, а не интерфейс). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 10:14 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
Если сервисы реализуют бизнес процессы, то работа с файлами не относится к сервисному слою. Это отдельный контур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 10:27 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVosttbald56rusа можно поподробнее? на контролере я бы сделал как то так: слишком громоздко. вот здесь есть либа и примеры, как собирать дескрипторы сортировок, фильтров и строить запросы LINQ динамически https://github.com/kendo-labs/dlinq-helpers ну и таких решений пруд пруди. по сути каждый их сам себе рисует, велосипедостроение в этом направлении неискоренимо )) а можно я еще поспрашиваю про фильтрацию/сортировку данных. скачал данный пример. на сколько я смог понять мне необходимы в моем проекте следующие классы: "Filter" - , "Sort","QueryableExtensions" - здесь методы для выполнения сортировки/фильтрации данных.я должен сделать методы расширения для выполнения сортировки/фильтрации. т.е. будет как то так: Код: c# 1. 2. 3. Я правильно понял общий принцип??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2015, 12:39 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusЯ правильно понял общий принцип??? Да, всё правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2015, 14:20 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
hVostt, не могли бы Вы помочь с реализацией фильтра. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. т.е. я хочу запретить редактирование/удаление операции для случая когда у операции есть "потомки" в виде программ. как это сделать правильно?мне приходит в голову тока следующее: при Get запросе по id получить операцию и проверить наличие "потомков". но есть небольшая загвоздка: в случае отсутствия потомков будет выполнен Get запрос, отобразится "представление", потом будет выполнен Post в этом случае я могу извлечь id из OperationEditModel и опять проверить. но что то мне кажется что это не правильно. заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2015, 22:44 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rus, учитывая if (filterContext.ActionDescriptor.ActionName == "Index" || filterContext.ActionDescriptor.ActionName == "Create") предлагаю для каждого action делать свой фильтр - потом проще за ними следить будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 09:26 |
|
||
|
Правильная структура ASP.NET MVC приложения
|
|||
|---|---|---|---|
|
#18+
bald56rusт.е. я хочу запретить редактирование/удаление операции для случая когда у операции есть "потомки" в виде программ. как это сделать правильно?мне приходит в голову тока следующее: при Get запросе по id получить операцию и проверить наличие "потомков". но есть небольшая загвоздка: в случае отсутствия потомков будет выполнен Get запрос, отобразится "представление", потом будет выполнен Post в этом случае я могу извлечь id из OperationEditModel и опять проверить. но что то мне кажется что это не правильно. заранее спасибо Рассмотрим: 1. Операции: редактирование/удаление (GET, POST Edit, Delete actions) 2. "Операция" это некий объект в модели данных 3. "Потомок" это некая связь, которую можно добыть через объект "Операция" Задачи фильтра: 1. Фильтр узкоспециализированный, т.е. применяется не на контроллер, а на конкретные действия 2. Фильтр извлекает из Action Parameters идентификатор операции 3. Фильтр получает объект из репозитория по ID 4. Фильтр проверяет наличие "Потомков" 5. Фильтр принимает решение о выдаче или невыдаче разрешения, и в случае отсутствия разрешения отменяет операцию и возвращает пользователю либо код ошибки, либо редиректит на страницу с информацией об отсутствии разрешения, либо редиректит на простмотр (Index или Details), предварительно передав через TempData мессадж о недоступности операции, который должен быть выведен каким-нибудь блоком в HTML. Т.е. в данном случае универсальный фильтр хуже, чем специализированный, так как универсальный должен определять тип операции по названию экшена, что нехорошо и негибко, а специализированный ты можешь плюхнуть на любые действия. Мало ли, может удаление потом понадобится, ты просто закомментишь фильтр на действии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 09:48 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1356557]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 398ms |

| 0 / 0 |
