我在网络开发和MVC的初级,我只是坚持创建SEO友好的URL。
我在View文件夹中有一个名为bond.cshtml的CSHTML页面。 我添加了以下控制器
public ActionResult Bond()
{
return View();
}
我现在拥有的网址是mywebsite / {controller} / bond 我不喜欢这样的URL,因为它不是SEO友好的。 我希望有这样的网址:mywebsite / {controller} / what-is-bond
所以基本上我希望能够使用一些自定义文本生成URL。 我怎样才能做到这一点?这只是一个静态页面,里面有文字和图片。
答案 0 :(得分:0)
听起来你想要添加一个映射到现有控制器的新路由。
答案 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);
}