2012-05-22 24 views
11

我創建了一個Asp.net MVC應用程序。現在需要404處理。重定向到404頁編程方式使用asp.net MVC

已經更新的Global.asax和顯示基於狀態碼404頁。還在web.config中添加了customErrors屬性。它的工作正常。

現在我想重定向到404編程時,任何事情不符合我們的要求相匹配。

即 if(!valid) { return RedirectToAction(「Index」,「Page404」); }

其工作正常,但有2個狀態一個是301 &然後404所以,請讓我知道我怎麼能防止301我只需要404

請讓我知道我可以做到這一點?

感謝, Laxmilal Menaria

回答

3

在你web.config,添加:

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

當找不到請求的資源時,這將在404.shtml頁面上重定向。

注:無需編程方式將用戶重定向這樣的情況。


編輯: 我真的建議:

if (Context.Response.StatusCode == 404) { 
    // handle this 
} 
2

只是拋出一個404狀態碼:

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound 
40

只需從你的行動回報:

return HttpNotFound(); 
+2

這是正確的答案。如果在服務結果的同時查詢數據庫並找到具有用戶指定的ID的對象不存在,則需要以編程方式將用戶重定向到404頁面(或類似操作)。 – Dermot