Можно ли получить доступ к HttpContext в атрибуте ValidationAttribute в ASP.NET MVC?



Можно ли получить доступ к HttpContext внутри ValidationAttribute в ASP.NET MVC 3?



Мне нужно проверить что-то в моих маршрутных данных на соответствие, чтобы вернуть true на моем валидаторе.



Спасибо

671   2  

2 ответов:

Да, вы можете получить доступ к статическому HttpContext.Current свойство для получения текущего контекста http.

Это свойство может возвращать значение null в зависимости от того, на каком потоке выполняется проверка, или в запросе, отличном от http, например в модульном тесте.

Вы, скорее всего, захотите абстрагироваться от вызова, который вы делаете .Текущий для того, чтобы создать более тестируемый код. Для этого пусть ваш абстрактный член возвращает HttpContextBase, например:

return new HttpContextWrapper(HttpContext.Current);

Эта абстракция позволит вы должны передать в макете http-контекста базовые экземпляры для более легкого тестирования.

Можно, но почему бы вместо этого не использовать атрибут RemoteValidationAttribute?

Comments

    Ничего не найдено.