Problem
kiedy ręcznie ustawiam HTTP Status
strumień odpowiedzi na, powiedzmy, 404
lub 503
IIS renderuje zawartość / widok zapasowy IIS zamiast mojego widoku niestandardowego.
Kiedy robię to za pomocą webowego serwera programistycznego (AKA. Cassini ), działa on poprawnie (to znaczy, moja treść jest wyświetlana, a response.statuscode
== moje wprowadzone dane).
Czy jest jakiś sposób, aby zmienić to zachowanie?
Jak się replikować
Utwórz domyślną aplikację internetową ASP.NET MVC1. Dodaj następującą trasę
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{*catchall}",
new { controller = "Home", action = "Index" }
);
}
Teraz zamień metodę indeksu HomeController na ...
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
Response.StatusCode = 404;
return View();
}
}