В ASP.NET MVC я хотел бы сделать что-то вроде:
- Пусть базовый контроллер проверит тип
ActionResult
.
- Если
ActionResult
является ViewResult
, загрузите некоторые общие данные для всех представлений.
- Если общие данные удовлетворяют некоторым конкретным критериям, перенаправьте на страницу входа.
Как бы вы это реализовали?
Я думал о следующем, но, кажется, редирект не работает (из-за того, что действие уже выполнено?). Есть ли способ обойти это?
public abstract class BaseController : Controller
{
protected override void OnActionExecuted
(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
// If the result is a view result,
// then it loads the shared data (for use in shared view):
if (filterContext.Result is ViewResult)
LoadSharedData();
}
private void LoadSharedData()
{
// TODO: Loads the data that is common for all views.
// TODO: If the shared data fulfills some specific criteria,
// it will redirect to a login page.
Redirect("http://someurl");
}
}