Je construis un site Web asp.net mvc2 et en utilisant beaucoup d'éléments de formulaire ajax (Ajax.BeginForm pour être exact) pour remplir de manière asynchrone des données sur la page. Je souhaite rediriger l'utilisateur vers la page de connexion après x période d'inactivité sur le site. Lorsque je le fais actuellement, soit par ActionExecutingContext, soit par HttpContext, la page de connexion est remplie dans l'élément div actuel pour ce formulaire ajax, au lieu de la page entière. Des idées sur la façon de l'obtenir pour rediriger la page actuelle?Erreur de redirection pour Ajax Froms dans asp.net mvc2
Répondre
Solution:
override l'événement OnActionExecuted dans votre contrôleur de base et créer un RedirectResult appeler en pour chaque fois que vous vouloir rediriger. Ajouter le code suivant:
protected RedirectResult Redirect(string url, ActionExecutedContext filterContext)
{
return new AjaxErrorRedirectResult(url, filterContext);
}
public class AjaxErrorRedirectResult : RedirectResult
{
public AjaxErrorRedirectResult(string url, ActionExecutedContext filterContext)
: base(url)
{
ExecuteResult(filterContext.Controller.ControllerContext);
}
public override void ExecuteResult(ControllerContext context)
{
if (context.RequestContext.HttpContext.Request.IsAjaxRequest())
{
string redirectUrl = "www.google.com";
JavaScriptResult result = new JavaScriptResult()
{
Script = "self.parent.location='" + redirectUrl + "';"
};
result.ExecuteResult(context);
}
else
{
base.ExecuteResult(context);
}
}
}
Si vous souhaitez rediriger l'utilisateur vers une autre page (page de connexion) lorsque le formulaire est soumis, pourquoi utiliser ajax? AJAX est mieux utilisé pour la manipulation d'une partie de la page et non la page entière.
Le Ajax.BeginForm a pour objet d'option pour spécifier l'id de l'élément HTML pour être mis à jour et du type de la mise à jour
exemple
Ajax.BeginForm("Create", "Project",
new AjaxOptions() {
UpdateTargetId = "projectform",
InsertionMode = InsertionMode.Replace,
HttpMethod = "Post" })
L'option InsertionMode a trois valeurs Replace
, InsertAfter
Dans votre cas, je ne sais pas si vous pouvez cibler la balise HTML dans UpdateTargetId. mais comme je l'ai dit plus tôt, il est préférable d'utiliser une requête normale dans ce scénario et de ne pas mettre à jour toute la page en utilisant Ajax.
sur la redirection de l'utilisateur vers la page de connexion après une période d'inactivité. Je crois que Sessions est la bonne façon de le faire. Je ne suis pas sûr cependant comment c'est fait.
Mise à jour:
J'espère que ce lien vous aidera: http://blog.tallan.com/2010/06/25/handle-asp-net-mvc-session-expiration/
- 1. Asp.net Mvc2 Ajax Aide ImageActionLink
- 2. Asp.Net MVC2 Erreur dans la vue
- 3. Formulaire de commentaires Ajax dans ASP.NET MVC2, howto?
- 4. Asp.net mvc 2 - Erreur lors de la redirection depuis ActionFilter?
- 5. Comment faire pour redirection sans perdre les données de session dans asp.net MVC2?
- 6. Erreur IIS dans le déploiement de asp.net mvc2
- 7. Comment puis-je faire un post AJAX dans ASP.NET MVC2?
- 8. FileUploader dans asp.net MVC2
- 9. DROPDOWNLIST dans ASP.NET MVC2
- 10. Gridview dans asp.net mvc2
- 11. jQuery Grid pour ASP.Net MVC2
- 12. Request.IsAjaxRequest ne fonctionne pas correctement dans asp.net mvc2
- 13. ELMAH en asp.net MVC2
- 14. Comment gérer UnauthorizedRequest par appel Ajax en Asp.net MVC2
- 15. Asp.net MVC/MVC2
- 16. cache résultat ajax sur asp.net côté client MVC2
- 17. Erreur de sérialisation JavaScript ASP.Net AJAX
- 18. asp.net mvc erreur .ajax attraper
- 19. Personnalisation DropdownFor dans ASP.NET MVC2
- 20. Redirection ASP.NET dans un contrôleur de base
- 21. Bind ISet dans ASP.NET MVC2
- 22. Amélioration urls dans asp.net MVC2
- 23. Traitement correct des erreurs dans ASP.NET MVC2
- 24. Ajax Redirection Handling
- 25. Chiffrement de l'entrée utilisateur dans ASP.NET MVC2
- 26. Exemple de projet pour comparer ASP.Net et ASP.Net MVC2
- 27. .Ajax avec jQuery et MVC2
- 28. Intellisense ne fonctionne pas pour ViewModel pour projet MVC2 dans ASP.NET MVC2 RTW
- 29. asp.net mvc ajax.BeginForm Redirection
- 30. MVC Futures ASP.Net Actualisez Pour MVC2
Je fais mes formulaires Ajax comme vous le montrer ici, seule différence est tous mes appels sont get, pas de Postes. Cela fonctionne très bien. J'utilise également des sessions pour contrôler le temps d'arrêt de l'utilisateur, cela fonctionne également très bien. C'est quand les deux travaillent côte à côte, j'ai le problème. Voici ce qui se passerait en fonction de l'exemple que vous venez de publier: 1. les mises à jour du contrôle projectForm comme prévu 2. l'utilisateur s'éloigne depuis longtemps, revient essaie de publier à nouveau 3. session expire et veut les rediriger pour se connecter .aspx. 4. seul l'élément projectFrom rend signin.aspx html. –
Oh ,,, j'ai votre problème maintenant. peut-être cela aidera http://stackoverflow.com/questions/2259225/how-can-i-redirect-in-asp-mvc-when-an-ajax-request-is-made (voir la deuxième solution) –
Merci homme pour les réponses rapides, vos messages m'ont définitivement mis sur la bonne voie, avec quelques modifications. J'ai posté une réponse pour référence. –