1

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

/Page/{slug}

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

我让我的路由定义处理 {slug} 为空或 Default 或其他任何情况的情况,所以设​​置很好。

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

例如,有人请求 /Page/xyz 并且 XYZ 在我的数据存储中不存在。

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

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

我知道这是有争议的,但仍然想就什么是最好的做法提出一些意见。还请提供几行代码,说明您将如何在 ASP.NET MVC 控制器操作中实现它。

4

2 回答 2

1

请参阅主题,它包含您案例所需的所有信息

于 2010-02-10T16:40:57.477 回答
1

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

于 2010-02-10T16:45:16.643 回答