推荐一个ASP.NET MVC友好(小写、横线连接)URL地址的组件--LowercaseDashedRoute

ASP.NET MVC 2014-11-09 8087浏览 收藏本文

我们(特别是SEO专业人员)都知道,网站的友好的URL对搜索引擎(百度,特别是google)是非常有好处的。因为一方面搜索引擎会分析URL地址中的文字并提取关键字,另一方面则是让网站的URL看起来更直观、易读。 seo-friendly-url 那么我们在ASP.NET MVC程序如何实现对搜索引擎和用户都友好的URL地址呢?很简单,正如我题目提到的组件--LowercaseDashedRoute,引用组件后只需简单的一点点设置即可实现友好的URL地址。 LowercaseDashedRoute是一个开源的用于优化URL地址的.NET组件,源码托管地址:https://github.com/AtaS/lowercase-dashed-route。它可以把ASP.NET MVC的地址变成全部小写并在Action的大写部分用横线连接,比如有控制器:

 public class HomeController : Controller
  {
    public ActionResult FriendlyUrl()
    {
      ViewBag.Message = "Friendly Url page.";
      return View();
    }
  }
用@Html.ActionLink("SEO", "FriendlyUrl", "Home")直接生成的链接地址为:
http://domain.com/Home/FriendlyUrl
使用LowercaseDashedRoute优化后生成的链接地址会是:
http://domain.com/home/friendly-url
怎么样,优化后的的URL看起来更直观易读吧。下面介绍一下具体的实现: 首先,下载(直接用Nuget程序包管理工具控制台)并引用组件--LowercaseDashedRoute
PM> Install-Package LowercaseDashedRoute
接着配置项目中App_Start文件夹下的RouteConfig.cs文件,注释掉原来的默认路由规则,并添加如下路由配置:
routes.Add(new LowercaseDashedRoute("{controller}/{action}/{id}",
    new RouteValueDictionary(
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
        new DashedRouteHandler()
    )
);
如下你在项目中也使用的Area域,那么同样在Area的XxxAreaRegistration.cs中用如下的路由规则替换默认的:
var route = new LowercaseDashedRoute("AreaName/{controller}/{action}/{id}",
        new RouteValueDictionary(
            new
            {
                action = "Index",
                id = UrlParameter.Optional
            }),
        new DashedRouteHandler(),
        this,
        context
    );
context.Routes.Add("AreaName_default", route);
OK,大功告成。SO EASY!!! ^_^

转载请注明:图享网 » 推荐一个ASP.NET MVC友好(小写、横线连接)URL地址的组件--LowercaseDashedRoute

验证码