我有一個HttpHandler用下面的代碼:設置Context.Response.StatusCode似乎不工作
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);
}
}
}
}
不幸的是,當我特意指定了無效的動作,瀏覽器只顯示一個空白頁。瀏覽器錯誤消息的非顯示在Firefox和IE中。
我會做什麼錯?
編輯 - IE顯示錯誤消息,但Firefox不。
螢火蟲/提琴手告訴你有關響應的是什麼? – Oded 2010-07-22 13:20:07
Firebug顯示正確的狀態。這是否意味着如果我想讓瀏覽器顯示一條消息,我必須自己渲染它? – 2010-07-22 13:29:19