StackOverflow像路由重定向

本文关键字:重定向 路由 StackOverflow | 更新日期: 2023-09-27 18:14:33

我正在创建一个网站,它的路由与SO非常相似,因为它们是:

posts/{id}/{title}

我想复制的功能,其中对于任何给定的路由X

任何以/posts/{id}开头且标题不正确的内容,将被重定向到/posts/{id}/{title}

在控制器中这样做似乎很尴尬,但在路由级别这样做似乎更糟糕。

我想控制器是可行的。

public ActionResult Display(long id, string title)
{
    // try and find post
    // if post is null, error
    // if post.title != title, permanent redirect to correct title
    if (title != "correct-ness-ly")
    {
        return RedirectToActionPermanent("Display", new { id, title = "correct-ness-ly" });
    }
    // permanent redirect if name doesn't match
    return new ContentResult { Content = "display post-id : {0}, {1}".FormatWith(id, title) }; // found or not
}

有没有更"干净"的方法来完成这个?

Update我刚刚意识到这让我"失去"任何可能存在的查询字符串值。除了必须声明性地传递每个操作参数之外。

StackOverflow像路由重定向

您没有指定使用的IIS版本。但是对于7+,你可以使用重定向模块。

对于IIS 6,有几个第三方URL重定向模块可以使用