Asp.net mvc 3 如何处理更改我的路由值?

Asp.net mvc 3 如何处理更改我的路由值?,asp.net-mvc-3,Asp.net Mvc 3,我有一个地方,改走这条路 public class WeblogsAreaRegistration : AreaRegistration { public override string AreaName { get { return "Weblogs"; } } public override void RegisterArea(AreaRegistrationContext cont

我有一个地方,改走这条路

 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是帖子号


有可能吗?

从您的路线中移除您的
操作
控制器
令牌。将其修改为:

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

谢谢,如果我删除了操作,它就可以工作了,但是当没有可用的post编号时,我该如何处理它呢。这应该能奏效。