【问题标题】:ASP.NET Routing. How can i use Routing in a Generic Handler?ASP.NET 路由。如何在通用处理程序中使用路由?
【发布时间】:2011-08-03 19:23:38
【问题描述】:

我尝试在以下通用处理程序中使用 ASP.Net,但我在 Page.RouteData 收到此错误

Reference to a non-shared member requires an object reference

我做错了什么?

<%@ WebHandler Language="VB" Class="MainHandler" %>

Imports System
Imports System.Web
Imports System.Xml


    Public Class MainHandler : Implements IHttpHandler, System.Web.SessionState.IRequiresSessionState

        Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

            Dim lng As String = Page.RouteData.Values("locale")

        End Sub

        Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
            Get
                Return False
            End Get
        End Property

    End Class

对于任何答案,请记住我是新手,我的语言是 VB.NET :) 提前谢谢你。

【问题讨论】:

    标签: asp.net vb.net ashx asp.net-routing generic-handler


    【解决方案1】:
     Dim lng As String = HttpContext.Current.Request.RequestContext.RouteData.Values("locale")
    

    【讨论】:

    • 您可以接受自己的答案。可以通过解释它如何以及为什么解决您的问题来改进答案。它甚至可能获得一些赞成票。 :)
    【解决方案2】:

    尝试以下操作。您必须检索路由表并从中读取。

    Dim rd AS RouteData
    rd = RouteTable.Routes.GetRouteData(new HttpContextWrapper(context))
    
    Dim val AS String
    val = rd.Values["locale"].ToString()
    

    查看linkmsdn 了解有关路由的更多详细信息。

    【讨论】:

    • @net 我想我这里有一个额外的问题...类型“MainHandler”不继承自“System.Web.UI.Page”。
    • 我认为您执行此错误。你能看看我放的链接吗?
    • @net 我确定我执行错了,因为它不起作用:(实际上我是在阅读第二个链接后来到这里的。感谢您的帮助
    • 这是一个更简单的链接。 chriscavanagh.wordpress.com/2008/03/11/….
    • 我有种我太菜鸟的感觉!我在 .aspx 页面中实现 ASP.NET 路由没有问题。我在通用处理程序中实现 asp 路由时遇到问题。所以我可以在通用处理程序中使用那个“页面”的东西......
    猜你喜欢
    • 2011-04-14
    • 2011-05-02
    • 2018-03-08
    • 2011-10-14
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2015-05-07
    相关资源
    最近更新 更多