Краткий ответ:
в настоящее время строка base.OnActionExecuting(filterContext)
ничего не делает (не выполняет). Функциональное поведение будет одинаковым с линией или без нее.
Более длинный ответ:
Исходный код .NET для Controller.OnActionExecuting
выглядит следующим образом (взято из здесь ):
protected virtual void OnActionExecuting(ActionExecutingContext filterContext)
{
}
Если вы посмотрите на метод OnActionExecuting
, вы увидите, что этот метод полностью пустой. Это код / метод, который вызывает base.OnActionExecuting(filterContext)
. У вас нет для вызова base.OnActionExecuting(filterContext)
, поскольку в настоящее время он ничего не делает, однако я бы порекомендовал это сделать. Причиной этого является то, что если платформа .NET обновляется так, что методу Controller.OnActionExecuting
действительно необходим код, содержащийся в нем, то необходимый код не будет вызываться без включения рассматриваемой строки. Это может привести к некоторым сценариям, которые могут быть довольно сложными и отнимающими много времени для отладки. Также, безусловно, возможно введение нового фреймворкового кода, который ломает ваш код при вызове base.OnActionExecuting
, однако этот сценарий обычно легче обнаружить и исправить, чем другой. Конечно, в конечном итоге все сводится к тому, какой код внедряет фреймворк и что он ломает для того, как легко его идентифицировать и решить.
В качестве дополнительного примечания, платформа .NET теперь находится в режиме обслуживания, поэтому я очень сомневаюсь, что приведенный выше пример с платформой .NET, обновляющей код в Controller.OnActionExecuting
, когда-либо произойдет, однако это служит хорошим передовым опытом в других аналогичные сценарии, а также.