基于Url的Webform Web API路由页面

时间:2014-06-05 04:17:20

标签: c# asp.net asp.net-web-api

我想重新路由我的网址,例如

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

这是正确的方法吗?还是有更优雅的方式?

1 个答案:

答案 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

的更多信息