Я пытаюсь создать ActionFilter в aspnet vNext. В этом фильтре я хочу, чтобы получить доступ к TempData и ViewData (оба имеющихся в контроллере в предыдущих версиях) .И переопределить метод public override void OnActionExecuting(ActionExecutingContext filterContext)
aspnet vNext ActionFilter и TempData
в filterContext
у меня есть контроллер, но это object
вместо ControllerBase
. Я ожидал ControllerBase
, потому что в предыдущих версиях MVC ControllerContext
(базовый класс ActionExecutingContext
) был ControllerBase
, here является исходным кодом в кодеплексе. Я понимаю, что это может быть связано с контроллерами POCO.
Итак, вопрос в том, как получить доступ к TempData и ViewData, если контроллер является объектом. Просто делать downcasting (что-то вроде этого (Controller)filterContext.Controller
), или есть лучший способ сделать это.
Update
То, что я хочу достичь, если объяснить это this blog post но с САШ 5.
Можете ли вы дать больше информации относительно того, что сценарий, который вы пытаетесь достичь? Доступ к «TempData» можно получить через службу «ITempDataDictionary» от DI. Что касается 'ViewData', это, вероятно, будет зависеть от сценария ... если вы коротко замыкаете запрос, то вы можете самостоятельно создать' ViewDataDictionary' и установить свойство 'ViewData' на' ViewResult', например. Или, если вы хотите просто добавить данные в «ViewData», к которым действие контроллера добавляет больше данных, тогда я считаю, что отличное кастинг просто отлично. –
Я хочу установить данные для последующего последующего запроса. В качестве конкретного примера я хочу достичь того же, что и объяснять это в [этом сообщении блога] (http://benfoster.io/blog/automatic-modelstate-validation-in-aspnet-mvc). Я собираюсь добавить эту информацию в вопрос. – vfabre
@KiranChalla, я думаю, что ваш комментарий является ответом на мой вопрос.Я буду использовать инъекцию зависимостей. Не могли бы вы отправить сообщение в качестве ответа? – vfabre