Redirect to 404 page programmatically using asp.ne

2019-03-18 23:07发布

I have created a Asp.net MVC application. Now required 404 handling.

Have updated global.asax and display 404 page based on status code. Also added customErrors property in web.config. Its working fine.

Now I would like to redirect to 404 programmatically when any thing not match with our requirement.

i.e.

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

It's working fine but there are 2 status one is 301 & then 404. So how can I prevent 301? I just need 404.

How can I achieve this?

3条回答
我命由我不由天
2楼-- · 2019-03-18 23:35

Simply return from your action:

return HttpNotFound();
查看更多
Anthone
3楼-- · 2019-03-18 23:53

In your web.config, add:

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

This will redirect on 404.shtml page when requested resource is not found.

Note: No need to programmatically redirect users for such situation.


EDIT: I literally suggest:

if (Context.Response.StatusCode == 404) {
  // handle this
}
查看更多
Rolldiameter
4楼-- · 2019-03-18 23:57

Just throw out a 404 in the status code:

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound
查看更多
登录 后发表回答