Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态URL路由不适用于ASP.NET Web窗体网站_Asp.net_Vb.net_Url Routing_Routeconfig - Fatal编程技术网

动态URL路由不适用于ASP.NET Web窗体网站

动态URL路由不适用于ASP.NET Web窗体网站,asp.net,vb.net,url-routing,routeconfig,Asp.net,Vb.net,Url Routing,Routeconfig,我有asp.net web表单中的网站。它使用url友好的结构。假设我有urlwww.site.com/experience/experience category。这里有两个不同的页面“体验”和“体验”类别。现在,每当我尝试访问此urlwww.site.com/experience/experience category时,它都不会显示此页面。它向我展示了www.site.com/experience页面。如何解决这个问题 线路图 Public Module RouteConfig P

我有asp.net web表单中的网站。它使用url友好的结构。假设我有urlwww.site.com/experience/experience category。这里有两个不同的页面“体验”和“体验”类别。现在,每当我尝试访问此urlwww.site.com/experience/experience category时,它都不会显示此页面。它向我展示了www.site.com/experience页面。如何解决这个问题

线路图

Public Module RouteConfig
    Public Sub RegisterRoutes(routes As RouteCollection)
        Dim settings = New FriendlyUrlSettings()
        settings.AutoRedirectMode = RedirectMode.Permanent
        routes.EnableFriendlyUrls(settings)

        routes.MapPageRoute("experience-category", "experience/{name}", "~/experience-category.aspx") 'For Experience Category
    End Sub
End Module

你可以做很多事情

routes.enableFriendlyURL(设置)
主要做的是向路由集合中添加两条路由

您的问题是,您的.aspx(experience.aspx)与您设置的路由url的一部分同名(
experience/{name}
)。 路由将在路由集合中查找第一个匹配项(在本例中,它将是您的
enableFriendlyURL
routes)

如果您想克服此问题,可以执行以下操作:

1.在routes.EnableFriendlyURL(设置)之前执行routes.MapPageRoute: 这将首先使用此规则,而不是FriendlyUrlSettings:

2.使用insert在routes集合的开头插入规则(而不是MapPageRoute): 3.避免与EnableFriendlyUrl路由规则匹配: 将您的控件(Experience.aspx)移动到一个文件夹中,这样在这种情况下它就不会干扰

    Public Module RouteConfig
    Public Sub RegisterRoutes(routes As RouteCollection)
        routes.MapPageRoute("experience-category", "experience/{name}", "~/experience-category.aspx") 'For Experience Category

        Dim settings = New FriendlyUrlSettings()
        settings.AutoRedirectMode = RedirectMode.Permanent
        routes.EnableFriendlyUrls(settings)

    End Sub
End Module
    Dim settings = New FriendlyUrlSettings()
    settings.AutoRedirectMode = RedirectMode.Permanent
    routes.EnableFriendlyUrls(settings)

    Dim overwrExperienceUrl As String = "experience/{name}"
    Dim overwrExperiencePRH As New PageRouteHandler("~/experience-category.aspx")
    Dim overwrExperienceRoute As New Route(overwrExperienceUrl, overwrExperiencePRH)
    routes.Insert(0, overwrExperienceRoute)