【问题标题】:Same url for two pages in asp.net web routingasp.net 网络路由中两个页面的相同 url
【发布时间】:2013-02-01 07:43:55
【问题描述】:

我正在处理网页 url 路由。我想要两个相同的路由 url。参数,相同的模式和相同的 url 但不同的路由名称。 我的路线如下。

Routes.MapPageRoute("Route1", "{parameter1}/{parameter2}", "packages.aspx");
Routes.MapPageRoute("Route2", "{parameter1}/{parameter2}", "destination.aspx", false, null, null,new RouteValueDictionary { { "isDestination", "yes"} });

当我调用虚拟路径数据时,我只重定向写在全局文件顶部的 url。

 VirtualPathData vpd =RouteTable.Routes.GetVirtualPath(null,
               "Route1",
               "parameter1", "parameter2");

VirtualPathData vpd =RouteTable.Routes.GetVirtualPath(null,
               "Route2",
              "parameter1", "parameter2");

Route1 的 Vpd 返回路径。 如何为两个不同的页面构建两个 url?

【问题讨论】:

  • 你有什么解决办法吗?请告诉我..

标签: asp.net


【解决方案1】:

第一个选项:您使用route constraints 来限制与特定路由匹配的浏览器请求。您可以使用正则表达式来指定路由约束。

第二种选择:您可以使用常量参数来区分具有相同数量和类型参数的路线。

例如:

Routes.MapPageRoute("Route1", "packages/{parameter1}/{parameter2}", "packages.aspx");
Routes.MapPageRoute("Route2", "destination/{parameter1}/{parameter2}", "destination.aspx", false, null, null,new RouteValueDictionary { { "isDestination", "yes"} });

【讨论】:

  • 如何解决4.0非MVC项目同样的问题?我有相同的条件相同的参数,但需要重定向到不同的页面?我有同样的问题!我的意思是说如何根据 URL 来决定目标页面,例如:1。 routes.MapPageRoute("carriers", "{state}/{mcat}/{dcat}", "~/carriers.aspx"); 2.routes.MapPageRoute("phones", "{state}/{mcat}/{dcat}", "~/phones.aspx");如果 URL 第二个参数中的值,即 mcat=cellphone,则它必须重定向到运营商.aspx。如果mcat=iphone那么它必须重定向到phones.aspx页面怎么办?有什么想法吗?
  • @SHEKHARSHETE 你有什么解决办法吗??
猜你喜欢
  • 2018-01-10
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 2018-10-20
相关资源
最近更新 更多