Question

J'essaie de créer mon propre ExceptionFilter. ASP.NET MVC est livré avec l'attribut [HandleError]. C'est génial - > mais il retourne une vue d'erreur HTML.

En tant que tel, je souhaite renvoyer un message d'erreur Json. Donc, je fais le mien.

Maintenant, tout fonctionne bien jusqu'à ce que je teste mon URL. Je continue d'avoir une erreur. c'est le message ....

C:\Temp\curl-7.19.5>curl -i http://localhost:6969/search/foo?name=1234&key=test1xxx
HTTP/1.1 401 Unauthorized
Server: ASP.NET Development Server/9.0.0.0
Date: Mon, 14 Sep 2009 01:54:52 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 1.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 6
Connection: Close


"Hi StackOverflow"'key' is not recognized as an internal or external command,
operable program or batch file.

C:\Temp\curl-7.19.5>

Ok, ça n'a aucun sens. Laissons un peu de code pour expliquer ce que je suis en train de faire, alors ...

public class HandleErrorAsJson : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        // Snip normal checks and stuff...

        // Assume we've figured out the type of error this is.
        // I'm going to hardcode it here, right now.
        int statusCode = 401;
        string message = "Hi StackOverflow";

        // Now prepare our json output.
        filterContext.Result = new JsonResult
            {
                Data = message
            };

        // Prepare the response code.
        filterContext.ExceptionHandled = true;
        filterContext.HttpContext.Response.Clear();
        filterContext.HttpContext.Response.StatusCode = statusCode;
    }
}

Voilà donc mon code ... et ça fonctionne un peu, mais ça ne fonctionne pas.

Qu'est-ce que cela signifie "clé"? qu'ai-je manqué en essayant de faire?

S'il vous plaît, aidez!

Était-ce utile?

La solution

Trouvé ma réponse - > Je devais mettre l’URL dans " .. " (guillemets) sinon, il essaie d'exécuter ce qui se trouve après le symbole esperluette, en tant que commande ou quelque chose de ce genre.

je ne sais pas pourquoi, mais cela résout le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top