ASP.NET网站上的路由(不是WebForm应用程序,也不是MVC)

ASP.NET网站上的路由(不是WebForm应用程序,也不是MVC),asp.net,routing,web-config,global-asax,Asp.net,Routing,Web Config,Global Asax,我可以使用web.config或Global.asax在asp.net网站文件夹结构中进行路由吗 基本上我想要 去 代理名称仅用于URL中的修饰 我发现了几个例子,但它们都适用于MVC或WebForms应用程序 在尝试实现Global.asax时,它一直说名称空间中不存在System.Web.Routing。这就是我的Global.asax现在无法运行的样子 <%@ Application Language="C#" %> <%@ Import Namespace="Syste

我可以使用web.config或Global.asax在asp.net网站文件夹结构中进行路由吗

基本上我想要

代理名称仅用于URL中的修饰

我发现了几个例子,但它们都适用于MVC或WebForms应用程序

在尝试实现Global.asax时,它一直说名称空间中不存在System.Web.Routing。这就是我的Global.asax现在无法运行的样子

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        RegisterRoutes(System.Web.Routing.RouteTable.Routes);

    }

    void RegisterRoutes(System.Web.Routing.RouteCollection routes)
    {
        routes.MapPageRoute("AgentPortfolioByName", "agents/{id}/{name}", "portfolio.aspx");
    }

    void Application_End(object sender, EventArgs e) 
    {
    }

    void Application_Error(object sender, EventArgs e) 
    { 
    }

    void Session_Start(object sender, EventArgs e) 
    {
    }

    void Session_End(object sender, EventArgs e) 
    {
    }

</script>
Global.asax应用程序的启动执行得很好,我试图设置一个断点。但它只是不理解System.Web.Routing是什么。在web.config中,我有以下条目:

<compilation debug="true">
            <assemblies>
                <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>
        </compilation>

<httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="RoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </httpModules>

<system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
            <remove name="ScriptModule"/>
            <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </modules>

您可以使用Global.asax实现路由。我认为您在应用程序中丢失了System.Web.Routing.dll引用。请确保您正在引用此文件。另外,请确保在Global.asax中导入System.Web.Routing命名空间。如果有助于理解网站应用程序中处理Global.asax文件,请浏览下面的链接

请随时联系,以便进一步讨论


谢谢,

您可以使用Global.asax执行路由。我认为您在应用程序中丢失了System.Web.Routing.dll引用。请确保您正在引用此文件。另外,请确保在Global.asax中导入System.Web.Routing命名空间。如果有助于理解网站应用程序中处理Global.asax文件,请浏览下面的链接

请随时联系,以便进一步讨论


谢谢,

如果您没有使用WebForms或MVC,那么您认为您正在使用的是哪种ASP.NET?您知道,在visual studio中,您可以选择“新建项目”->“ASP.NET WebForms应用程序”或“新建网站”。这是一个网站。例如,这意味着Global.asax没有代码隐藏。如果您不使用WebForms或MVC,那么您认为您使用的是哪种其他类型的ASP.NET?您知道,在visual studio中,您可以选择“新建项目->ASP.NET WebForms应用程序”或“新建网站”。这是一个网站。例如,这意味着Global.asax没有代码隐藏。