0

看来我们需要为 webform 路由中的每个页面指定一个路由

我想使用默认路由到名为cms.aspx的页面,每个页面的参数名为nameofurl ,期望default.aspx

有时我想发送 cms.aspx 多个参数,例如

mydomain.com/cms.apx?nameurl=somevalue

或者

mydomain.com/cms.apx?nameurl=somevalue&order=6

我有这段代码,但这不是解决方案,因为您必须告诉路由页面的名称

  routes.MapPageRoute("",
        "pageName/{nameofurl}",
        "~/cms.aspx")

我想要这样的东西

 routes.MapPageRoute("",
        "?/{nameofurl }",
        "~/cms.aspx")

有时我希望它是这样的

routes.MapPageRoute("SalesRoute",
    "?/{nameofurl}/{order}",
    "~/cms.aspx");

知道如何在不指定页面名称的情况下实现这种路由吗?

4

1 回答 1

0

您可以创建如下所示的路线:

routes.MapPageRoute("Route1","{nameofurl}","~/cms.aspx")
routes.MapPageRoute("Route2","{nameofurl}/{order}","~/cms.aspx")
routes.MapPageRoute("Route3","{nameofurl}/{order}/{abc}","~/cms.aspx")

如果没有其他带有 2 或 3 个参数的页面,上述路由将起作用。但是,如果您要路由其他页面并且要传递 2 个参数,那么您需要在参数之前提及硬编码字符串,否则新路由将覆盖旧路由。

例如:

routes.MapPageRoute("Route4","{nameofurl}/{order}","~/products.aspx")

在上述情况下,Route4 将覆盖 Route 2。因此,您需要定义如下所示的路由:

routes.MapPageRoute("Route4","products/{nameofurl}/{order}","~/products.aspx")

您可以在以下 URL 找到与 URL 路由相关的文章:

http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-part-2.html

感谢和问候,

蒙贾尔

于 2013-10-10T07:50:24.067 回答