【发布时间】:2014-05-03 19:17:42
【问题描述】:
我继承了一个处理几个域的 vb.net WebForms 项目。但是,我想要每个域的唯一路由。当我使用 MapPageRoute 时,有没有办法通过获取域来做到这一点?还是我需要做类似的事情:
routes.MapPageRoute("r1", "example1/page1", "~/example1/default.aspx")
routes.MapPageRoute("r2", "example2/page1", "~/example2/default.aspx")
但是 URL 需要像这样:
//example1.com/example1/page1 和 //example2.com/example2/page1
如果可能,我想在 Application_Start 中将路由限制到特定域。
* 编辑 *
好的,看来我可以通过为相似的路径创建唯一的路径名称来半解决这个问题:
routes.MapPageRoute("r1", "page1", "~/example1/default.aspx")
routes.MapPageRoute("r2", "page1", "~/example2/default.aspx")
然后在我的标记中我可以做到:
<asp:HyperLink NavigateUrl="<%$RouteUrl:routename=r1%>" ID="link_home" runat="server">Home</asp:HyperLink>
然后在我的默认页面(或其母版页)中,我可以通过重定向到基于域的相应路由来处理“//example.com/”请求。
但是我不确定如何处理传入的请求,例如:
//example1.com/page1 和 //example2.com/page1。我假设第一条路线将为任一域加载。有什么想法我能做什么?
【问题讨论】:
-
您可能需要重写 GetRouteData 函数 ala: stackoverflow.com/questions/278668/…
标签: asp.net vb.net routing routes