ASP.NET MVC - Wordpress样式URL

时间:2010-06-21 16:07:34

标签: asp.net asp.net-mvc seo

Wordpress受到高度重视,并被证明遵循良好做法,这反过来又有助于利用搜索引擎进行排名。

一个经证实的因素是seo freindly urls。如下面的例子;

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

假设我们有两个控制器,每个都有他们的胜利行动;

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

wordpress视图引擎足够灵活,测试网址可以解析为BlogPost,另一个网址可以解析为BlogCategory。

有没有人知道这是否可以在MVC中使用并且可行吗?我正在考虑一个自定义404处理程序,它将保留浏览器中的URL,然后触发所需的操作。

3 个答案:

答案 0 :(得分:1)

您可以像这样定义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”和“another”。您可以在这里看到,您可以将此路由数据存储在其他位置,例如db,然后通过它们将每个路由数据添加到RouteCollection。

答案 1 :(得分:0)

您可以通过RedirectToAction()调用

向控制器添加操作
...
public ActionResult test()
{
    return RedirectToAction("BlogPost");
}
..
public ActionResult another()
{
    return RedirectToAction("BlogCategory");
}
...

答案 2 :(得分:0)

正如其他人回答的那样,很容易有这样的路线来拥有友好的“Slug”网址。还有一些技巧可以构建非常干净的URL,如WordPress。我已就此主题撰写了两篇博文,可帮助您更好地了解Slug网址:Build pretty clean URL for your dynamic pages using JavaScriptTranslating your content title using Google Translate API to use in a URL