0
Dans ASP.NET MVC Je voudrais faire quelque chose comme:Comment puis-je rediriger après la détermination d'ActionResult?
- Laissez un contrôleur de base pour vérifier le type de
ActionResult
. - Si le
ActionResult
est unViewResult
, chargez des données partagées pour toutes les vues. - Si les données partagées remplissent certains critères spécifiques, rediriger vers une page de connexion.
Comment implémenteriez-vous cela?
Je pensais à ce qui suit, mais il semble que la redirection ne fonctionne pas (en raison de l'action a déjà été exécutée?). Y a-t-il un moyen de contourner ceci?
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");
}
}