【问题标题】:Dynamic Routing in ASP.NET MVC 3ASP.NET MVC 3 中的动态路由
【发布时间】:2012-07-23 12:08:55
【问题描述】:
我正在使用 MVC 3 和 razor 构建博客引擎。在这种情况下,我给出了一个用户可以拥有多个博客的选项(类似于 blogger.com)
现在假设用户 'yasser' 拥有以下 3 个博客
所以我希望所有其他用户通过以下网址访问这些博客
- www.domainName.com/blogs/TechStory
- www.domainName.com/blogs/GameGeek
- www.domainName.com/blogs/MeMyStory
并且可以添加更多博客,因此将来会访问更多此类网址。
我知道需要对路由进行一些处理,但刚接触 MVC 似乎并没有得到它。请有人指导我。
【问题讨论】:
标签:
asp.net-mvc-3
asp.net-mvc-routing
【解决方案1】:
将此路由添加到您的默认路由之上:
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 和路由。