【问题标题】:problems by using routing asp.net使用路由 asp.net 的问题
【发布时间】:2014-09-10 12:28:00
【问题描述】:

大家好,我是 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");
        }

而且效果很好,我会用来链接页面 在我的菜单中,但是当我在 url 中时,如果再次单击另一个链接 像这样的网址程 /Solutions/Solutions/VDI 我该如何解决这个问题

【问题讨论】:

  • 问题不在于您的配置,而在于 URL 生成本身。只需重新构建您的链接,而不是在解决方案页面中使用 href="solutions/test",而是使用 href="/solutions/test"。不同之处在于以 / 开头,表示 root,从那里您的路由将正确命中。

标签: asp.net routing


【解决方案1】:

您的问题可能是由于同一页面有两个路由声明。虽然这是有效的,但不是推荐的方法。你应该改变你的减速,而不是像这样指定一个默认的空值

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");
    }

所以参考:asp.net webforms routing: optional parameters

另请注意,您可能希望更改链接到您的网址的方式。您可以在这些链接中找到有关如何链接到路由 url 的参考。

http://msdn.microsoft.com/en-us/library/cc668176.aspx

http://www.4guysfromrolla.com/articles/012710-1.aspx

【讨论】:

    【解决方案2】:

    我的问题出在 href 的链接上,就像这样的解决方案/安全性,我在 url 后面放置了一个正斜杠,就像这样 /solutions/security

    【讨论】:

      猜你喜欢
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 2011-11-30
      • 2013-06-07
      相关资源
      最近更新 更多