Asp.net MVC SEO友好URL

Hit*_*iya 11 asp.net url-rewriting asp.net-mvc-routing asp.net-mvc-3

我想为我的ASP.NET MVC网站实现一个SEO友好的URL.

目前我的网址如下:

http://www.domain.com/product?id=productid

但现在我想重写我的网址:

http://www.domain.com/productname

所以,任何人都可以帮我上面......

Dot*_*mer 14

这是首发的最佳文章 - > SEO友好的URls
文章还解释了如何删除空格和破折号.


Nar*_*iya 11

请尝试以下解决方案.在global.asax.cs

routes.MapRoute(
    "Product",
    "{productName}",
    new { controller = "Product", action = "Index" },
    new { productName = UrlParameter.Optional  }
);
Run Code Online (Sandbox Code Playgroud)

但你要保持唯一性需要productName与产品控制器(即指数在行动产品控制器通过取记录:

public ActionResult index(string productName)
{
     //do something regarding get product by productname
}
Run Code Online (Sandbox Code Playgroud)


Sri*_*lan 8

您可以以这种方式将路由添加到MVC路由引擎 -

Global.asax.cs

routes.MapRoute(
    "Product",
    "{controller}/{productId}/{productName}",
    new { controller = "Product", action = "Index" },
    new { productId = UrlParameter.Optional , productName = UrlParameter.Optional  }
);
Run Code Online (Sandbox Code Playgroud)

这将允许您使用URL

www.domain.com/productid/productname
Run Code Online (Sandbox Code Playgroud)

您可能会或可能无法实现的原因

www.domain.com/productname
Run Code Online (Sandbox Code Playgroud)

productname不是标识符,不能用于唯一地查找记录.您需要在网址中使用标识符.

Ex - 在SO中查看此问题的URL,它有ID,然后附加SEO友好测试.