该页面没有经过适当的重定向搜索,但无法找到解决方案

时间:2015-02-11 10:25:23

标签: c# asp.net routing

我正在尝试一个简单的路由,我的global.asax如下所示

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


}

public static void registerroutes(RouteCollection routecollection)
{
    routecollection.MapPageRoute("home","home/","~/home.aspx");
}

我的主页

 protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {

    Response.Redirect(ResolveUrl("~/home/"));



    }
}

但不是没有正确重定向不知道我错在哪里

2 个答案:

答案 0 :(得分:0)

您使用的是Microsoft Friendly URL Nuget包吗? (如果没有,我强烈建议)

如果您使用它,可以避免在主页中使用重定向 -

你需要在App_Code中创建一个RouteConfig.CS> App_Start然后添加以下代码(确保你使用的是System.Web.Routing和Microsoft.AspNet.FriendlyUrls

public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings);

        routes.MapPageRoute("", "", "~/default.aspx");            
    }
然后在global.asax中

添加

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

}

这应该可以在主页上不需要任何重定向的情况下工作。

答案 1 :(得分:0)

请删除ResolveUrl,因为它不打算在这里使用,它只用于解析view / aspx代码中的脚本和资源文件。

的Response.Redirect( “〜/家”);

还有一件事,要注意C#编码标准,功能名称应该是pascal的情况: RegisterRoutes而不是registerroutes

另外,请确保您的home.aspx页面有一个物理文件放在您网站的根目录下。

如果它还没有消失,我们需要知道你得到了什么样的错误以及你如何运行你的应用程序?使用IIS快递?还是IIS服务器?还是经典的开发服务器?