想请教个问题
路由重写  求指导
http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0http://localhost:58865/Tutorinfo/News
上面地址变成下面的  
如果ClassID=1  下面News变成Title
谢谢

解决方案 »

  1.   

    http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html
      

  2.   

    路由重写  求指导
    http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0http://localhost:58865/Tutorinfo/News
    上面地址变成下面的  
    如果ClassID=1  下面News变成Title
    有点混乱
      

  3.   


    http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0
    上面地址变成下面的  
    http://localhost:58865/Tutorinfo/News如果ClassID=1  下面News变成Title
    没有News这个view
      

  4.   

    MVC路由系统已经很强大了 非要重写像这
    http://www.xxx.com/category/showcategory?categoryid=0001&view=list&orderby=price&page=1
    =>
    http://www.xxx.com/category/0001
      现在老板又提出了新的需求,URL的语义化,从而更好的反应网站的结构:http://www.xxx.com/ca-categoryname
    根本不要不要复杂  categoryname完全是唯一的 设计就有问题
      

  5.   

            routes.MapRoute(
                    name: "Tutorinfo",
                    url: "{controller}/{V}/{ClassID}",
                    defaults: new { controller = "Tutorinfo", action = "Article_Detail" },
                    constraints: new { controller = "Tutorinfo", action = "Article_Detail" }
                );
    这种效果?
    url:http://localhost:58865/Tutorinfo/News/0?Title=%E6%96%B0%E9%97%BB7
    ViewResult Article_Detail(string V , int ClassID )
      

  6.   

    不是这种 我上面不是说了吗?
    http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0
    上面地址变成下面的  
    http://localhost:58865/Tutorinfo/News如果ClassID=1  下面News变成Title
      

  7.   

    这叫奇葩...
    你可以百度下Url重写有什么作用
      

  8.   

    把涉及的表及表关系贴一下  ClassID是什么?
      

  9.   

    http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0
    ClassID=0时  News
    http://localhost:58865/Tutorinfo/News
    ClassID=1时  Movies
    http://localhost:58865/Tutorinfo/Movies
    ClassID=2时  Active
    http://localhost:58865/Tutorinfo/Active
      

  10.   

    哎,LZ你既然都看过路由的用法了,为什么还是看不懂
    路由是配置的这个///中的路径,你这个是要按参数来实现跳转,直接写到controller里不就行了?
    非要在路由里实现只有用路由过滤器了,何必呢。
      

  11.   

    News model = new News();
                if (classid == 1)
                {
                    return RedirectToAction("Title");
                }
                else
                {
                    model = new NewsBLL().GetModel(strWhere);
                }            return View(model);
      

  12.   

                routes.MapRoute(
                      "TutorinfoNews",
                      "Tutorinfo/News/{Title}",
                      new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 }
                  );如果配置的路由和action名相同 在不更改action的情况下怎么弄
       public ActionResult News(string more, int? id)
      

  13.   

         routes.MapRoute(
                      "TutorinfoNews",
                      "Tutorinfo/News/{Title}",
                      new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 }
                  );
    你这路由加个限制就行了  这个  new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 }是default
    加个限制: constraints: new { controller = "你的controller", action = "你的action" }
      

  14.   

    这个最好换成这样   "{controller}/News/{Title}",
      

  15.   

    还要这样   
             routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                    constraints: new { action = @"^(?!你的action$).+$" }
                );
      

  16.   

    如果有多个classid  你可以写多个路由
      

  17.   

    需求:输入下面地址时访问Action  News
    public ActionResult News(int? id)
    http://localhost:58865/Tutorinfo/News/输入下面地址时访问Action  Article_Detail
    public ActionResult Article_Detail(string Title, int? ClassID)
    http://localhost:58865/Tutorinfo/News/%E6%96%B0%E9%97%BB7现在路由配置为
      routes.MapRoute(
                      "TutorinfoNews",
                      "{controller}/News/{Title}",
                      new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 },
                       constraints: new { controller = "Tutorinfo", action = "Article_Detail" }
                  ); routes.MapRoute(
                    "Default", // 路由名称
                    "{controller}/{action}/{id}", // 带有参数的 URL
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
                );
    现在问题是如果输入http://localhost:58865/Tutorinfo/News/这个地址
    也就是没有传参数进去的时候,它访问的是action  Article_Detail而不是News 
    求在不更改Action名时,怎么搞这个东西
    要跪了 
      

  18.   

    action = @"^(?!News$).+$"   routes.MapRoute(
                      "TutorinfoNews",
                      "{controller}/News/{Title}",
                      new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 },
                       constraints: new { controller = "Tutorinfo", action = @"^(?!News$).+$" }
                  );
      

  19.   

    action = @"^(?!News$).+$" 这个是什么意思?
      

  20.   

    还有我去掉了Title = UrlParameter.Optional, 就行了  
    下面问题是这样的  我有多个ClassID  怎么写到一个配置里面?
        routes.MapRoute(
                    "TutorinfoNews", 
                    "Tutorinfo/News/{Title}",
                    new { controller = "Tutorinfo", action = "Article_Detail", ClassID = 0 }, 
                    constraints: new { controller = "Tutorinfo", action = "Article_Detail" });            routes.MapRoute(
                        "TutorinfoMovies",
                        "{controller}/Notice/{Title}",
                        new { controller = "Tutorinfo", action = "Article_Detail", ClassId = 1 },
                         constraints: new { controller = "Tutorinfo", action = "Article_Detail" }
                    );            routes.MapRoute(
                                "TutorinfoActive",
                                "{controller}/Activity/{Title}",
                                new { controller = "Tutorinfo", action = "Article_Detail", ClassId = 4 },
                                 constraints: new { controller = "Tutorinfo", action = "Article_Detail" }
                            );
      

  21.   

    action 不是News 貌似不对