ASP.NET MVC在找不到内容时重定向到默认页面/路由

时间:2010-02-10 16:34:00

标签: asp.net-mvc http http-status-codes

让我说我有一个路线/动作来显示这样的内容页面:

/Page/{slug}

其中{slug}可以是访问者键入的任何内容,但如果保留为空,则默认为“默认”。

我的路由定义处理{slug}为空或Default或其他任何内容的情况,因此设置正常。

现在,在请求的slug(例如Page)不存在的情况下你会怎么做?

有人请求/ Page / xyz,我的数据存储区中不存在XYZ。

1)我应该发出404(如果是,如何?我的选项:a)重定向到默认404页面; b)没有404响应,只是一个友好的错误消息?)

2)我应该自动重定向到默认值吗?如果是这样,我是否必须发出302,301或什么?

我知道这是值得商榷的,但仍然希望就什么是最好的预制措施提出一些意见。另外,请提供几行代码,说明如何在ASP.NET MVC控制器操作中实现它。

2 个答案:

答案 0 :(得分:1)

请参阅this主题,其中包含您案例的所有必需信息

答案 1 :(得分:1)

@zihotki链接了一个很好的页面,用于了解要发送的响应代码类型。要在ASP.NET MVC中发送它们,您需要在错误处理代码中实例化一个错误控制器,并且您的响应应该适当地设置HttpResponse.StatusCode