12

Asp.net MVC アプリケーションを作成しました。404 処理が必要になりました。

global.asax を更新し、ステータス コードに基づいて 404 ページを表示します。また、web.config に customErrors プロパティを追加しました。その正常に動作します。

ここで、要件に一致しないものがあれば、プログラムで 404 にリダイレクトしたいと思います。

すなわち

if(!valid) 
{
    return RedirectToAction("Index", "Page404");
}

正常に動作していますが、301 と 404 の 2 つのステータスがあります。どうすれば 301 を防ぐことができますか? 404が必要です。

どうすればこれを達成できますか?

4

3 に答える 3

45

アクションから戻るだけです。

return HttpNotFound();
于 2012-05-22T13:10:25.827 に答える
3

web.configに、次を追加します。

<customErrors mode="On" >
       <error statusCode="404" redirect="/404.shtml" />
</customErrors>

これにより、要求されたリソースが見つからない場合に 404.shtml ページにリダイレクトされます。

注:このような状況では、ユーザーをプログラムでリダイレクトする必要はありません。


編集: 私は文字通り提案します:

if (Context.Response.StatusCode == 404) {
  // handle this
}
于 2012-05-22T13:10:40.817 に答える
2

ステータス コードで 404 をスローするだけです。

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound
于 2012-05-22T13:10:02.097 に答える