如何处理hange我的路线值?

时间:2012-06-10 14:14:08

标签: asp.net-mvc-3

我有一个区域并改变我的路线

 public class WeblogsAreaRegistration : AreaRegistration
 {
    public override string AreaName
    {
        get
        {
            return "Weblogs";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Weblogs_default",
            "Weblogs/{controller}/{action}/{blogName}/{post}",
            new { action = "Index", 
                  blogName = UrlParameter.Optional,post=UrlParameter.Optional}
        );

    }
}

这是我的索引

 public ActionResult Index(string blogName,int post)
    {
        return View();
    }

它可以正常工作:

 http://localhost:2927/Weblogs/Blogs?blogName=Myco&Post=3

但不是

 http://localhost:2927/Weblogs/Blogs?blogName=Myco

问题是什么?

如何更改路径以使用此URL:

 http://localhost:2927/Weblogs/Blogs/Myco/3

“myco”是博客名称,3是帖子编号。

有可能吗?

1 个答案:

答案 0 :(得分:0)

从您的路线中移除您的actioncontroller令牌。修改它是这样的:

 context.MapRoute(
            "Weblogs_default",
            "Weblogs/Blogs/{blogName}/{post}",
            new { action = "Index", 
                  Controller = "Blogs",
                  blogName = UrlParameter.Optional,
                  post=UrlParameter.Optional}
        );