我该如何实现以下功能?
我的控制器:
if (something == null)
{
//return the view with 404 http header
return View();
}
//return the view with 200 http header
return View();
我该如何实现以下功能?
我的控制器:
if (something == null)
{
//return the view with 404 http header
return View();
}
//return the view with 200 http header
return View();
只要写就好了
Response.StatusCode = 404;
在返回视图之前。
return HttpNotFound();
在内部所做的。它向当前的 HttpContext 响应中添加了 404 StatusCode 和 StatusDescription。 - levelnisreturn
一样结束函数。顺便说一下:Alan Low 的回答和我的完全相同,而且它被点赞可能有原因... - feroif (something == null)
{
return new HttpNotFoundResult(); // 404
}
else
{
return new HttpStatusCodeResult(HttpStatusCode.OK); // 200
}
new EmptyResult()
和 new HttpStatusCodeResult(HttpStatusCode.OK)
是相同的。 - Erik Philipsif (something == null)
{
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
//return the view with 200 http header
return View();
return
,因为第二个也会返回。 - Dave Van den EyndeResponse
的TrySkipIisCustomErrors
属性设置为true
。public ActionResult NotFound()
{
Response.StatusCode = 404;
Response.TrySkipIisCustomErrors = true;
return View();
}
if (something == null)
{
return HttpNotFound();
}
return View();
我会抛出一个404异常,并创建一个自定义异常过滤器,用于返回404错误的未找到页面。内置的HandleError
过滤器无法处理404错误。
if (something == null)
{
throw new HttpException(404, "Not found")
}
return View();