Есть ли какое-либо действие, просачивается Ваш проект, который Вы чувствуете, необходимая вещь?

Я все еще не полностью ясен на том, почему я должен был бы создать фильтры пользовательского действия. Возможно, пара примеров помогла бы.

Есть ли какое-либо действие, просачивается Ваш проект, который Вы чувствуете, необходимая вещь? Возможно, несмотря на это, важный, что Вы снова используете их через все свои проекты MVC?

8
задан Chaddeus 15 August 2010 в 04:16
поделиться

6 ответов

Я использую фильтр действий «Ведение журнала» для регистрации всех вызовов моих контроллеров с помощью дампа параметров - это может быть очень полезно во время стороннего тестирования, позволяя мне увидеть, как / почему / когда люди взаимодействуют с приложением.

Хотя я и не являюсь фильтром действий, я также помещаю в свои репозитории ловушку регистрации, которая выгружает SQL, сгенерированный любым кодом Linq2SQL ... снова полезно, чтобы точно увидеть, что и когда выполняется.

3
ответ дан 5 December 2019 в 17:32
поделиться

Мой любимый "must have" Фильтр, который я использую, проверяет модель представления на наличие пустых списков. Если есть, он пытается заполнить их из базы данных. Я в основном использую это для заполнения общих раскрывающихся списков, поэтому мне не нужно вставлять этот код в действие контроллера.

2
ответ дан 5 December 2019 в 17:32
поделиться

Unsupported Browser Filter(UBF) - проверяет Request.Browser и перенаправляет на страницу загрузки браузера или легковесную страницу.

По умолчанию все наши контроллеры поддерживают только те браузеры, которые поддерживает jQuery. Но программист может пометить контроллер специальным атрибутом для переопределения UBF

Новые глобальные фильтры MVC3 делают использование UBF еще более простым.

2
ответ дан 5 December 2019 в 17:32
поделиться

reCaptcha фильтр проверки

Любой публичный веб-сайт, безусловно, нуждается в некотором виде проверки капчи. Так почему бы не использовать ту, которая очень надежна и имеет очень хорошую цель. reCaptcha.

Интеграция с MVC довольно проста.

2
ответ дан 5 December 2019 в 17:32
поделиться

Фильтр проверки немодельного состояния

Это повседневный сценарий создания уникальных записей в БД. Предположим, у вас есть сущность Пользователь . У вас есть все возможные атрибуты проверки, но есть один, который вы не можете добавить. И это то, является ли экземпляр объекта уникальным.

Зачем он вообще нужен?
Это два наиболее распространенных процесса с сущностью Пользователь , в которых задействована проверка:

  1. Создание новых пользователей
  2. Обновление данных пользователя

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

Но когда вы делаете обновление, уникальность проверять не нужно, потому что пользователь уже существует в БД.

Как решить эту проблему?

Используя фильтр действий в действии Создать . Но поскольку этот вид фильтра должен использоваться для всех типов сущностей, разумно сделать его более универсальным и многоразовым, чтобы мы могли фактически использовать его для всех видов сущностей.

Вот как я это сделал.

1
ответ дан 5 December 2019 в 17:32
поделиться

У меня есть два, без которых я не могу жить:

a) AjaxMasterPageInjectorAttribute: задача этого маленького парня - проверить, выполняется ли запрос IsAjax (), а затем переключиться на безхромный AjaxMasterPage как подходящее. Corolarry - это JsonCommandInterceptor - он принимает ответ и при необходимости меняет его на команду Json для сценариев ajax. Позволяет создать единичную цепочку действий, которая при необходимости динамически становится ajaxy.

b) ViewModelWrapperInjectorAttribute: захватывает модель представления и вставляет в своего рода более глобальную ViewModelWrapper для всего сайта. Сохраняет ваши действия сосредоточенными на том, что они должны делать, и отвлекает от бизнеса по заполнению / предоставлению указанного ViewModelWrapper в более инфраструктурное место.

0
ответ дан 5 December 2019 в 17:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: