Я обновил свой проект с ASP.NET MVC1.0 в ASP.NET MVC4.0неправомерное сохраненное состояние экземпляра в действии фильтра
Одна вещь, которая действительно меня пугает это следующее предложение по документации обновления до MVC3 .0
В предыдущих версиях ASP.NET MVC фильтры действий создавали за запрос, за исключением нескольких случаев. Такое поведение никогда не было гарантировано , но только деталь реализации, а контракт на фильтры должен был считаться с ними без гражданства. В ASP.NET MVC 3 фильтры кэшируются более агрессивно. Поэтому любые пользовательские фильтры действий, которые ненадлежащим образом хранят состояние экземпляра, могут быть повреждены.
Я думаю, что нет простого способа проверить ошибки, вызванные ненадлежащим сохранением состояния экземпляра. Если у меня проблема, я уверен, что я ее найду только на производстве.
Что здесь означает неправильно сохраненное состояние экземпляра?
У меня есть этот код:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
ProductModel productModel = new ProductModel()
filterContext.ActionParameters["model"] = productModel;
}
Это образец неправильно сохраненное состояние экземпляра?
И как их избежать? Я хочу сохранить некоторые простые параметры для фильтра, есть глобальная регистрация со значением по умолчанию для каждого экземпляра, а некоторые контроллеры имеют свои собственные атрибуты с другими значениями. Современный подход к использованию свойств уровня экземпляра теряет глобальные значения. – Akbari
Привет @Акбари, я не уверен, что понимаю ваш комментарий - не могли бы вы уточнить? Или, если это другой связанный, но касательный запрос, пожалуйста, задайте еще один вопрос о SO и ссылку на него здесь? Благодаря! –
Привет, Rich, я действительно задал вопрос здесь [https://stackoverflow.com/q/47666835/3967440]. Спасибо за внимание. – Akbari