Я хочу добавить определенные методы, и я хочу, чтобы они выполнялись перед выполнением каких-либо действий. Так что я создал эту BaseController, из которого все мои контроллеры будут наследоватьДобавить параметр по умолчанию для всех действий
public class BaseController : Controller
{
protected int promotionId = 0;
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool thereIsPromo = false;
if (filterContext.ActionParameters.Keys.Contains("promotionId"))
{
thereIsPromo = true;
}
var foo = filterContext.RouteData;
// TODO: use the foo route value to perform some action
base.OnActionExecuting(filterContext);
}
}
Как вы можете видеть, что я хочу, чтобы проверить, если пользователь запросил продвижение Id в URL. Проблема заключается в том, что для того, чтобы получить эту работу, я должен добавить параметр promotionId
ко всем моим действиям (что означает изменение подписи всех моих действий), и я не хочу этого делать.
Есть ли способ переопределить метод действия по умолчанию и добавить к нему необязательный параметр, чтобы он был добавлен ко всем моим действиям?
Или есть лучший способ сделать это?