Я пытаюсь разработать плагин для nopcommerce и попытаться поймать модель для страницы (после отправки) в фильтре действий, чтобы я мог внести некоторые изменения в свойства модели.Автоматический фильтр вызывающего действия в MVC5
public ActionResult Index()
{
Data dt = new Data();
dt.id = 54;
dt.name = "something";
return View(dt);
}
и это Фитлер:
public class ModelChangerAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
Data dt = new Data();
dt = (Data) filterContext.Controller.ViewData.Model;
dt.id++;
dt.name += " someotherthing";
filterContext.HttpContext.Items["dt"] = dt;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//throw new NotImplementedException();
}
}
Но для фильтра действий для запуска мне нужно указать его перед методом в контроллере. И я не с этим справляюсь.
не хотят, чтобы сделать это:
[ModelChangerAttribute]
public ActionResult Index()
{
...
Так можно ли назвать фильтр автоматически каждый раз, когда метод контроллера запускается?
Просьба привести пример ЗДЕСЬ.
Вы можете применить его к контроллер вы хотите это для всех методов в нем. –
@StephenMuecke Я не хочу редактировать контроллер во ВСЕХ. – VSG24
Не знаете, что вы подразумеваете под _edit controller_? Свой публичный класс '[ModelChangerAttribute] yourController: Controller {' или зарегистрировать его глобально для всех контроллеров в 'global.asax' –