Page.GetRouteUrl返回null

时间:2014-07-31 10:10:25

标签: c# asp.net

这是Default.aspx代码:

<asp:LinkButton ID="Reditect_btn" runat="server" Text="Redirect" OnClick="Redirect_click" />

服务器端:

    protected void Redirect_click(object sender, EventArgs e)
    {
      string s=Page.GetRouteUrl("Default",null); // here s=null
    }

Global.asax中

 void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
    RegisterRoutes(RouteTable.Routes);
}


public static void RegisterRoutes(RouteCollection routes)
{
    routes.Clear();
    routes.MapPageRoute("Account", "{PartnerName}/Account/{page}", "~/Account/{page}", false);
    routes.MapPageRoute("Default", "{PartnerName}/{page}", "~/{page}", false);
}

s=null我无法理解原因:/任何人都可以帮助

1 个答案:

答案 0 :(得分:2)

你使用了错误的重载。

Page.GetRouteUrl("Default");

对应GetRouteUrl(object),其中object是你的路线参数,你给它一个路线名。

我怀疑你需要使用:

GetRouteUrl(string routeName, object routeParameters)

GetRouteUrl( string routeName, RouteValueDictionary routeParameters )