ASP.NET MVC - URL в стиле Wordpress - PullRequest
1 голос
/ 21 июня 2010

Wordpress очень высоко ценится и доказано, что следует хорошей практике, что, в свою очередь, способствует ранжированию в поисковых системах.

Одним из доказанных факторов является URL-адреса seo freindly. Такие, как примеры ниже;

www.myblog.com/test
www.myblog.com/another
www.myblog.com/contact

Допустим, у нас есть два контроллера, каждый со своими выигранными действиями;

View/BlogPost
View/BlogCategory
Contact/Form
Contact/Post

Механизм просмотра WordPress достаточно гибок, чтобы URL-адрес теста мог преобразовываться в BlogPost, а другой URL-адрес - в BlogCategory.

Кто-нибудь знает, возможно ли это в MVC и возможно ли это? Я думаю о собственном обработчике 404, который сохранит URL-адрес в браузере, а затем запустит необходимые действия.

Ответы [ 3 ]

1 голос
/ 22 июня 2010

Вы определяете маршрут в global.asax следующим образом: нижний является значением по умолчанию:

        routes.MapRoute(
            "Test",
            "test",
            new { controller = "View", action = "BlogPost"}
        );

        routes.MapRoute(
            "Another",
            "another",
            new { controller = "View", action = "BlogCategory"}
        );

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

Второй параметр в MapRoute () - это URL, в вашем случае «test» и «другой".Здесь вы, вероятно, можете видеть, что вы можете хранить эти данные маршрута где-то еще, например, в БД, а затем через каждый из них добавлять каждый к RouteCollection.

0 голосов
/ 22 июня 2010

Как и другие парни ответили выше, легко иметь такие маршруты, чтобы иметь дружественные URL-адреса "Slug".Есть также несколько хитростей для создания довольно чистых URL, таких как WordPress.Я написал два сообщения в блоге на эту тему, которые могут помочь вам лучше понять URL-адреса Slug: Создайте довольно чистый URL для ваших динамических страниц, используя JavaScript и Перевод названия вашего контента с помощью Google Translate APIиспользовать в URL

0 голосов
/ 21 июня 2010

Вы можете добавить Действие к своему контроллеру с помощью RedirectToAction() вызова

...
public ActionResult test()
{
    return RedirectToAction("BlogPost");
}
..
public ActionResult another()
{
    return RedirectToAction("BlogCategory");
}
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...