我想重新路由我的网址,例如
http://localhost:1756/homepage.aspx
到
http://localhost:1756/pages.aspx
在pages.aspx中然后我处理原始网址,看看它是不是homepage.aspx,products.aspx等。 加载正确的内容。
我正在使用
RouteTable.Routes.MapPageRoute("pages", "{page}", "~/pages.aspx");
在global.asax
中这是正确的方法吗?还是有更优雅的方式?
答案 0 :(得分:2)
在您的全球.aspx中,您需要注册以下路线:
//to prevent requests for the Web resource files such as WebResource.axd or ScriptResource.axd from being passed to a controller RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}"); //if you don't need parameters on your url then it would like this: RouteTable.Routes.MapPageRoute("Pages", "pages", "~/pages.aspx"); //if you need a parameter on your url then it would be like this: RouteTable.Routes.MapPageRoute("Pages", "pages/{id}", "~/pages.aspx");
另一种方法是将所有路由URL放在一个类中,然后将它们放在App_Start文件夹中,然后从你的global.asax文件中注册它。
// global.asax中
protected void Application_Start(object sender, EventArgs e) { RouteConfig.RegisterRoutes(RouteTable.Routes); }
// App_Start / RouteConfig.cs
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.Ignore("{resource}.axd/{*pathInfo}"); routes.MapPageRoute("Pages", "pages", "~/pages.aspx"); } }
您可以找到有关路由here
的更多信息