这是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
我无法理解原因:/任何人都可以帮助
答案 0 :(得分:2)
你使用了错误的重载。
Page.GetRouteUrl("Default");
对应GetRouteUrl(object),其中object
是你的路线参数,你给它一个路线名。
我怀疑你需要使用:
GetRouteUrl(string routeName, object routeParameters)
或GetRouteUrl( string routeName, RouteValueDictionary routeParameters )