Ho un HttpHandler con il seguente codice:Impostazione Context.Response.StatusCode non sembra funzionare
using System;
using System.Web;
using Company.Cms;
using Company.Web.Handlers.Console;
namespace Company.Web.Handlers
{
/// <summary>
/// Summary description for AdminHandler
/// </summary>
public class AdminHandler : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
HttpRequest request = context.Request;
HttpResponse response = context.Response;
string action = request.QueryString["action"];
if (!HttpContext.Current.User.CanAdminister())
{
response.StatusCode = 403;
response.Status = "403 Access Denied";
response.End();
return;
}
if (String.IsNullOrEmpty(action))
{
response.StatusCode = 404;
response.Status = "404 Not Found";
response.End();
return;
}
IHttpHandler handler = null;
switch (action)
{
case "menu":
handler = new MenuHandler();
break;
case "tree":
handler = new TreeHandler();
break;
case "grid":
handler = new GridHandler();
break;
case "list":
handler = new ListHandler();
break;
case "drop":
handler = new DropHandler();
break;
case "edit":
handler = new EditHandler();
break;
case "new":
handler = new InsertHandler();
break;
}
if (handler == null)
{
response.StatusCode = 404;
response.Status = "404 Not Found";
response.End();
}
else
{
handler.ProcessRequest(context);
}
}
}
}
Purtroppo quando ho intenzionalmente specificare un'azione non valida, il browser visualizza solo una pagina vuota. Non dei messaggi di errore del browser vengono visualizzati sia in Firefox che in IE.
Cosa potrei fare di sbagliato?
MODIFICA - IE mostra il messaggio di errore, ma Firefox no.
Che cosa ti dice la risposta di Firebug/Fiddler? – Oded
Firebug mostra lo stato corretto. Questo significa che se voglio che il browser mostri un messaggio, devo renderlo da solo? –