Я создал следующий Custom ActionFilter, когда я пытаюсь получить доступ к Model
в следующем коде, он имеет значение null:
public class CustomPermissionCheckAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
OrganisationBaseController orgBaseController = context.Controller as Controller;
var vm = ((Controller)context.Controller).ViewData.Model as MyViewModel; // null
// check if current user has permission to vm.OrganisationId
base.OnActionExecuting(context);
}
}
Я пытаюсь понять, почему Model
имеет значение null ? Согласно ASP. NET MVC Lifecycle , ActionFilters выполняются после связывания модели, поэтому я не уверен, почему модель недоступна?
Вот как я регистрирую указанный выше фильтр действий:
[HttpPost]
[CustomPermissionCheck]
public ActionResult UpdateBranch(MyViewModel myViewModel)
{
if (ModelState.IsValid)
{
// so something
}
return View();
}