繁体   English   中英

使用名称空间system.web.Routing传递querystring Ids URL路由

[英]Passing querystring Ids URL Routing using namespace system.web.Routing

我是URL路由的新手。

情况1:我可以为映射到/Reservation URL:/content/category.aspx实现URL路由

情况2:我不太确定如何处理查询字符串值。

例如:

URL:/content/category.aspx?SID=5&CID=191

我想将此映射到: /Reservation

为第一种情况编写的代码:

Global.asa

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    Dim urlPattern As String
    Dim Reservation As Route
    urlPattern = "Reservation/"
    Reservation = New Route(urlPattern, New JRouteHandler("~/content/category.aspx"))
    RouteTable.Routes.Add("Reservation", New Route("Reservation", New JRouteHandler     ("~/content/category.aspx")))
End Sub

Http处理程序

Public Sub New(ByVal virtualPath As String)
    _virtualPath = virtualPath
End Sub

Public Function GetHttpHandler(ByVal requestContext As RequestContext) As IHttpHandler Implements IRouteHandler.GetHttpHandler
    If (Not UrlAuthorizationModule.CheckUrlAccessForPrincipal(_virtualPath, requestContext.HttpContext.User, requestContext.HttpContext.Request.HttpMethod)) Then
        requestContext.HttpContext.Response.StatusCode = CInt(Fix(HttpStatusCode.Unauthorized))
        requestContext.HttpContext.Response.End()
    End If

    Dim display = TryCast(BuildManager.CreateInstanceFromVirtualPath(_virtualPath, GetType(Page)), name)

    display.pageName = TryCast(requestContext.RouteData.Values("name"), String)
    Return display
End Function

Public Interface name
    Inherits IHttpHandler
    Property pageName() As String

End Interface

-在Web配置中

</modules>

您无法按照自己的方式进行。 我们已经通过免费的第三方DLL实现了URL重写,您可以借助此工具来实现所需的功能。 它也可以处理查询字符串。 我们所做的就是将DLL添加到我们的解决方案中,并在web.config中编写规则以进行URL映射。 请尝试此操作,如果您需要进一步的帮助,请告诉我。
http://www.urlrewriting.net/149/en/home.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM