用于MVC中静态cshtml页面的SEO友好URL

时间:2014-10-07 21:58:04

标签: asp.net-mvc model-view-controller controller seo

我在网络开发和MVC的初级,我只是坚持创建SEO友好的URL。

我在View文件夹中有一个名为bond.cshtml的CSHTML页面。 我添加了以下控制器

public ActionResult Bond()
    {
        return View();
    }

我现在拥有的网址是mywebsite / {controller} / bond 我不喜欢这样的URL,因为它不是SEO友好的。 我希望有这样的网址:mywebsite / {controller} / what-is-bond

所以基本上我希望能够使用一些自定义文本生成URL。 我怎样才能做到这一点?这只是一个静态页面,里面有文字和图片。

2 个答案:

答案 0 :(得分:0)

听起来你想要添加一个映射到现有控制器的新路由。

Use MVC routing to alias a controller

答案 1 :(得分:0)

您可以注册自定义ActionFilterAttribute以从文本中添加ID。 见http://haacked.com/archive/2010/02/21/manipulating-action-method-parameters.aspx/

主要方法是这个

public override void OnActionExecuting(ActionExecutingContext filterContext)
  {
    var slug = filterContext.RouteData.Values["slug"] as string;
    if(slug != null)
    {
      int id;
      Slugs.TryGetValue(slug, out id);
      filterContext.ActionParameters["id"] = id;
    }
    base.OnActionExecuting(filterContext);
  }