2009-05-19 7 views
26

Supposons que j'ai une méthode dans mon contrôleur qui est appelée via un appel jQuery AJAX. Par exemple. J'aimerais supprimer un utilisateur. Quand tout va bien, je retourne un nouveau contenu ('ok') et quitte la méthode.Comment le serveur asp.net (mvc) doit-il renvoyer l'erreur à l'appel jquery ajax pour être intercepté en rappel d'erreur?

Que faire en cas d'erreur? Je voudrais l'indiquer par un code d'état approprié, de sorte que mon rappel d'erreur s'appellerait appelé. Pourquoi le code d'état? Lire ici: How do you trigger the "error" callback in a jQuery AJAX call using ASP.NET MVC?

Cependant, l'approche ne fonctionne pas car IIS7 retourne son propre message (mauvaise demande) insted de mon message d'erreur personnalisé.

En outre, il y a deux autres prises:

  1. Il doit travailler avec IIS6 ainsi
  2. IE8 ne retourne pas la chaîne « demande Bad ». Dans le rappel d'erreur interne, la propriété request.responseTest est null.

Le rappel d'erreur pourrait ressembler à ceci: erreur: function (demande) {alert (request.responseText);}

Répondre

30

Réglage de la Response.StatusCode est la bonne chose à faire. Pour résoudre la gestion des erreurs "utiles" d'IIS, définissez la propriété HttpResponse.TrySkipIisCustomErrors. Vous pouvez lire plus à ce sujet here.

+0

HttpResponse.TrySkipIisCustomErrors ne fonctionne pas avec IIS6 – stej

+0

Le comportement d'IIS 7 que vous voyez est spécifique à IIS 7 et doit être traité spécifiquement. Lisez les liens dans ma réponse. –

+0

Probablement je ne comprends pas. Les liens fournis concernent uniquement IIS 7, mais j'ai également besoin d'une solution pour IIS 6 (comme indiqué dans (1)). – stej

Questions connexes