【问题标题】:ASP.NET MVC Redirecting to default page/route when content is not found找不到内容时,ASP.NET MVC 重定向到默认页面/路由
【发布时间】:2010-02-10 16:34:00
【问题描述】:

让我说我有一个用于显示如下内容页面的路由/操作:

/Page/{slug}

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

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-26
        • 2014-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多