大家好,我是ASP.net的初学者,我尝试使用路由来介绍 通过遵循global.asax中的代码来解决一些问题:
protected void RoutingHandler(string routeName, string repUrl, string Url)
{
RouteTable.Routes.MapPageRoute(routeName,repUrl,Url);
}
protected void Application_Start(object sender, EventArgs e)
{
RoutingHandler("SolutionsRoute", "Solutions/{name}", "~/Pages/Solutions.aspx");
RoutingHandler("SolutionsPageRoute", "Solutions", "~/Pages/Solutions.aspx");
}
它运作良好,我用来链接页面 在我的菜单中,但当我在网址中,如果再次点击另一个链接 网址如此/ 解决方案 / 解决方案 / VDI 我该如何解决这个问题
答案 0 :(得分:0)
您的问题可能是由于同一页面有两个路由声明。虽然这是有效的,但它不是推荐的方法。您应该改变减速度,而不是像这样指定一个默认的空值
protected void RoutingHandlerWDefault(string routeName, string repUrl,
string Url, bool chkURL, string varOne)
{
RouteTable.Routes.MapPageRoute(routeName,repUrl,Url, chkURL,
chkUrl, new RouteValueDictionary { { varOne, string.Empty } });
}
protected void Application_Start(object sender, EventArgs e)
{
RoutingHandlerWDefault("SolutionsRoute", "Solutions/{name}", "~/Pages/Solutions.aspx",
false, "name");
}
SO参考:asp.net webforms routing: optional parameters
另请注意,您可能希望更改链接到网址的方式。您可以在这些链接中找到有关如何链接到路由网址的参考资料。
答案 1 :(得分:0)
我的问题出在href的链接,就像这个解决方案/安全性我在这个/ solutions / security
这样的网址后面放了一个转发斜杠