ASP.NET MVC中的动态路由3

时间:2012-07-25 05:31:38

标签: asp.net-mvc-3 asp.net-mvc-routing

我正在使用MVC 3和razor构建一个博客引擎。在这种情况下,我给出了一些选项,例如用户可以拥有多个博客(类似于blogger.com)

现在说用户'yasser'有以下3个博客

  • TechStory
  • GameGeek
  • MeMyStory

所以我希望所有其他用户通过以下网址访问这些博客

  • www.domainName.com/blogs/TechStory
  • www.domainName.com/blogs/GameGeek
  • www.domainName.com/blogs/MeMyStory

可以添加更多博客,因此将来可以获得更多此类网址。

我知道有些东西需要用Routing来完成,但是对MVC来说是新手似乎没有得到它。请有人指导我。

1 个答案:

答案 0 :(得分:3)

在默认路线之上添加此路线:

routes.MapRoute(
    "Blog",
    "Blogs/{blogName}",
    new { controller = "Blogs", action = "Index" }
);

您的控制器将如下所示:

public class BlogsController : Controller
{
    public ActionResult Index(string blogName)
    {
        BlogModel model = // find blog by blog name
        return View(model);
    }
}

另外,一个建议:将控制器名称保持在单一模式:BlogController而不是BlogsController。如果您决定更改URL和路由,请执行此操作。