Создайте короткие постоянные ссылки, похожие на «краткую постоянную ссылку на этот вопрос» в Stack Overflow. - PullRequest
5 голосов
/ 29 октября 2010

Я думаю, что, возможно, уже понял, как это работает, но хотел быть уверен.

Я нахожусь в процессе определения маршрутов для нового приложения ASP.NET MVC.Я хотел бы создать короткие постоянные ссылки, похожие на короткую постоянную ссылку Stack Overflow на этот вопрос :

Создать короткие постоянные ссылки, похожие на "короткую постоянную ссылку Stack Overflow на этот вопрос"

Какой маршрут и механизм контроллера использует Переполнение стека для этого поведения постоянной ссылки?

Другие вопросы, обсуждающие маршруты вопросов переполнения стека:

1 Ответ

1 голос
/ 02 ноября 2010

Я полагаю, что маршруты переполнения стека настроены примерно так:

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 });
    }
}
...