Jak mogę rzucić 404 lub wyjątek/wyjątek FileNotFound z mojej akcji i pozwolić IIS użyć sekcji konfiguracji customErrors, aby wyświetlić stronę 404?rzucanie/zwracanie wyniku 404 lub wyjątku w Asp.net MVC i pozwalanie IIS obsługiwać go
Mam zdefiniowane tak jak moje CustomErrors
<customErrors mode="On" defaultRedirect="/trouble">
<error statusCode="404" redirect="/notfound" />
</customErrors>
moja pierwsza próba z ActionResult, która stara się dodać tę pracę nie robi.
public class NotFoundResult : ActionResult {
public NotFoundResult() {
}
public override void ExecuteResult(ControllerContext context) {
context.HttpContext.Response.TrySkipIisCustomErrors = false;
context.HttpContext.Response.StatusCode = 404;
}
}
Ale to tylko pokazuje pustą stronę i nie moje/nie-found strona
:(
Co należy zrobić?
Gdyby zdegradować tego powodu nie powinno się tego robić ręcznie. Użyj metody kontrolera HttpNotFound, jak pokazano w innej odpowiedzi. – xanadont
Prawda - ale HttpNotFound został wprowadzony w ASP.NET MVC 3. To pytanie (i moja odpowiedź) poprzedziło to i było odpowiednim podejściem we wcześniejszych wersjach. Teraz edytowałem swoją odpowiedź, aby zilustrować nowsze podejście, które jest preferowane w MVC3. –
Rad. Wygrałem z powrotem. – xanadont