23

以下の機能を実現するにはどうすればよいですか?

私のコントローラー

if (something == null)
{         
     //return the view with 404 http header
     return View();          
}

  //return the view with 200 http header
  return View();
4

6 に答える 6

38

書くだけ

Response.StatusCode = 404;

ビューを返す前に。

于 2012-12-07T14:18:25.950 に答える
15
if (something == null)
{         
   return new HttpNotFoundResult(); // 404
}
else
{
   return new HttpStatusCodeResult(HttpStatusCode.OK); // 200
}
于 2012-12-07T14:10:50.523 に答える
10
if (something == null)
{         
    Response.StatusCode = (int)HttpStatusCode.NotFound;
    return View();          
}

//return the view with 200 http header
return View();
于 2012-12-07T14:41:52.503 に答える
9

TrySkipIisCustomErrorsのプロパティをResponseとして設定する必要がありますtrue

public ActionResult NotFound()
{
    Response.StatusCode = 404;
    Response.TrySkipIisCustomErrors = true;
    return View();
}
于 2016-02-03T23:09:56.827 に答える
2
if (something == null)
{         
   return HttpNotFound();
}

return View();
于 2012-12-07T14:10:44.683 に答える
1

404例外をスローし、404エラーの見つからないページを返すカスタム例外フィルターを作成します。組み込みのHandleErrorフィルターは404エラーを処理しません。

if (something == null)
{         
   throw new HttpException(404, "Not found")
}

return View();
于 2012-12-07T15:04:14.037 に答える