2016-07-18 3 views
0
public class MAttribute : IActionFilter 
{ 

public void OnActionExecuted(ActionExecutedContext actionContext) 
    { 
     string searchData = ""; 
     actionContext.Controller.ViewBag.SearchItem = searchData; 
     //object not included in the definition 
    } 

} 

, когда я переопределяю IActionFilter, он запрашивает объект, не включенный в определение ', поэтому Как установить ViewBag в IActionFilter MVC6?Как установить ViewBag в IActionFilter MVC6?

+0

Незначительное разъяснение: вы не «переопределяете» интерфейс; вы «реализуете» его. (В отличие от наследования от базового класса, там нет существующей реализации для переопределения.) – CrazyPyro

ответ

0

Попробуйте унаследовать от ActionFilterAttribute И я думаю, что метод подписи вы хотите OnActionExecuting(ActionExecutingContext)

Для получения дополнительной информации см: http://www.strathweb.com/2015/06/action-filters-service-filters-type-filters-asp-net-5-mvc-6/

Edit: Вы, вероятно, также хотят, чтобы добавить using Microsoft.AspNetCore.Mvc.Filters; в верхней части, если вы еще нет.

+0

спасибо, я пытаюсь переопределить OnResultExecuting. и он работает. –

+0

'public override void OnResultExecuting (ResultExecutingContext context) { var controller = context.Controller as Controller; controller.ViewBag.Text = "test"; base.OnResultExecuting (контекст); } ' –