创建类似于 Stack Overflow 的“此问题的简短永久链接”的简短永久链接

Posted

技术标签:

【中文标题】创建类似于 Stack Overflow 的“此问题的简短永久链接”的简短永久链接【英文标题】:Create short permalinks similar to Stack Overflow's "short permalink to this question" 【发布时间】:2011-05-02 03:57:27 【问题描述】:

我想我可能已经了解它的工作原理,但想确定一下。

我正在为新的 ASP.NET MVC 应用程序定义路由。我想创建类似于 Stack Overflow 的 此问题的短永久链接的短永久链接:

Create short permalinks similar to Stack Overflow's "short permalink to this question"

Stack Overflow 使用什么路由和控制器机制来实现这种永久链接行为?

讨论 Stack Overflow 问题路线的其他问题:

How can I create a friendly URL in ASP.NET MVC? How do you include a webpage title as part of a webpage URL? Creating search engine friendly URL's in ASP.NET MVC

【问题讨论】:

是的,基本上就是这样。此外,这并不是以问答形式提出的——您应该用上面的一些文字来回答您的问题。 @Jeff 同意问题格式。我会围绕一个答案重新设计它。感谢您的观看! @Jeff 分成问题和答案。再次感谢您的确认。 【参考方案1】:

我相信 Stack Overflow 路由的设置类似于以下内容:

routes.MapRoute("question-permalink", "q/questionId/userId", 
    new  controller = "PermaLinkController",
        action = "Question", userId = UrlParameter.Optional ,
    new  questionId = "[0-9]+", userId = "[0-9]+" );

基于指向问题当前位置的302 Found:我假设 PermaLink 控制器的问题操作如下所示:

public class PermaLinkController : Controller

    public Question (int questionId, int? userId)
    
        // do work to record userId that shared link
        // ...
        // now redirect
        Response.RedirectToRoute("question", new  questionId = questionId );
    

【讨论】:

这个答案是从上述问题的原始版本中提取的。根据 Jeff 对该问题的评论,它被标记为答案。

以上是关于创建类似于 Stack Overflow 的“此问题的简短永久链接”的简短永久链接的主要内容,如果未能解决你的问题,请参考以下文章

Stack Overflow 功能操作方法:从用户的个人资料页面创建指向用户在 OP 的 questⅰon 上的答案的链接

如何实现类似 Stack Overflow 的搜索

如何在表单中实现类似 Stack Overflow 的水印?

Stack Overflow-esque源代码

如何在网页上显示代码示例,并使用类似 Stack Overflow 的漂亮语法样式?

Stack Overflow 2016最新架构探秘