简体   繁体   English

自定义路由在ASP.NET中不起作用

[英]Custom Route Not Working in ASP.NET

I have been trying to following this http://msdn.microsoft.com/en-us/library/cc668202(v=vs.90).aspx 我一直在尝试遵循此http://msdn.microsoft.com/en-us/library/cc668202(v=vs.90).aspx

I have created add this to my web.config: 我创建了此添加到我的web.config:

<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"/>
      <remove name="UrlRoutingModule" />
      <add name="UrlRoutingModule"
           type="System.Web.Routing.UrlRoutingModule, 
               System.Web.Routing, 
               Version=3.5.0.0, 
               Culture=neutral, 
               PublicKeyToken=31BF3856AD364E35"/>
    </modules>

And, I have added this to my Global.asax: 而且,我已将其添加到我的Global.asax中:

protected void Application_Start(Object sender, EventArgs e)
        {
            SplendidInit.InitApp();
            RegisterRoutes(RouteTable.Routes);
        }

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.Add("ShortUrl_Attachment_NoLogin", new Route
            (
               "a",
               new CustomRouteHandler("~/FACTS/Attachments/Attachment_NoLogin.aspx")
            ));
        }

        public class CustomRouteHandler : IRouteHandler
        {
            public CustomRouteHandler(string virtualPath)
            {
                this.VirtualPath = virtualPath;
            }

            public string VirtualPath { get; private set; }

            public IHttpHandler GetHttpHandler(RequestContext
                  requestContext)
            {
                var page = BuildManager.CreateInstanceFromVirtualPath
                     (VirtualPath, typeof(Page)) as IHttpHandler;
                return page;
            }
        }

When I navigate to /FACTS/Attachments/Attachment_NoLogin.aspx it works; 当我导航到/FACTS/Attachments/Attachment_NoLogin.aspx它可以工作; but, when I try to navigate to my custom route /a , it says, " HTTP Error 404.0 - Not Found ." 但是,当我尝试导航到自定义路由/a ,它显示为“ HTTP Error 404.0-Not Found”

How can I make my custom route work? 如何使我的自定义路线有效?

Thank you for your help. 谢谢您的帮助。

Edit: 编辑:

I am using .NET 3.5, on IIS 7.5, if that makes a difference (which I assume it does). 我正在IIS 7.5上使用.NET 3.5,如果这样做有所不同(我认为确实如此)。

The solution I used was to just download and install the IIS Rewrite module. 我使用的解决方案是仅下载并安装IIS Rewrite模块。 It was super easy, and super cool :) 这非常容易,也很酷:)

http://www.iis.net/downloads/microsoft/url-rewrite http://www.iis.net/downloads/microsoft/url-rewrite

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

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