想请教个问题
路由重写 求指导
http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0http://localhost:58865/Tutorinfo/News
上面地址变成下面的
如果ClassID=1 下面News变成Title
谢谢
路由重写 求指导
http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0http://localhost:58865/Tutorinfo/News
上面地址变成下面的
如果ClassID=1 下面News变成Title
谢谢
http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0http://localhost:58865/Tutorinfo/News
上面地址变成下面的
如果ClassID=1 下面News变成Title
有点混乱
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
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完全是唯一的 设计就有问题
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 )
http://localhost:58865/Tutorinfo/Article_Detail?Title=%E6%96%B0%E9%97%BB7&ClassID=0
上面地址变成下面的
http://localhost:58865/Tutorinfo/News如果ClassID=1 下面News变成Title
你可以百度下Url重写有什么作用
ClassID=0时 News
http://localhost:58865/Tutorinfo/News
ClassID=1时 Movies
http://localhost:58865/Tutorinfo/Movies
ClassID=2时 Active
http://localhost:58865/Tutorinfo/Active
路由是配置的这个///中的路径,你这个是要按参数来实现跳转,直接写到controller里不就行了?
非要在路由里实现只有用路由过滤器了,何必呢。
if (classid == 1)
{
return RedirectToAction("Title");
}
else
{
model = new NewsBLL().GetModel(strWhere);
} return View(model);
"TutorinfoNews",
"Tutorinfo/News/{Title}",
new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 }
);如果配置的路由和action名相同 在不更改action的情况下怎么弄
public ActionResult News(string more, int? id)
"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" }
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { action = @"^(?!你的action$).+$" }
);
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名时,怎么搞这个东西
要跪了
"TutorinfoNews",
"{controller}/News/{Title}",
new { controller = "Tutorinfo", action = "Article_Detail", Title = UrlParameter.Optional, ClassID = 0 },
constraints: new { controller = "Tutorinfo", action = @"^(?!News$).+$" }
);
下面问题是这样的 我有多个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" }
);