繁体   English   中英

ASP.NET MVC在首页加载时重定向到主页,而不是请求的URL

[英]ASP.NET MVC redirects on first page load to homepage, and not to requested URL

当我遇到以下问题时,我正在一个客户的MVC项目中工作。

我的客户是房地产经纪人。 http://stienstra.nl/

上周,我们为参观房屋建立了在线表格。 3天后,订阅者会收到一封电子邮件,其中包含指向客户满意度表格的链接(也是上周生成的)。 http://stienstra.nl/Enquete )单击此链接并加载网站后,用户将被重定向到主页而不是表单。

当我将已经加载的(主页)页面的URL更改为stienstra.nl/Enquete时,它可以正常工作。

谁能告诉我怎么了。

非常感谢。

我的RouteConfig

namespace Stienstra.App_Start
{
public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("xml");

        routes.MapRoute("SitemapXml", "sitemap.xml", new {controller = "Xml", action = "Sitemap"});

        // NOTE THE MAINTENANCE ROUTE - only if exists in web.config
        try
        {
            var settings = new AppSettingsReader();
            if (settings.GetValue("Maintenance", typeof (String)) != null)
                routes.MapRoute("Maintenance", "{*url}", new {controller = "Home", action = "Maintenance"});
        }
        catch (Exception)
        {
        }


        // Algemene pagina routes
        routes.MapRoute("over-stienstra", "over-stienstra", new {controller = "Home", action = "About"})
            .SetRouteName("over-stienstra");
        routes.MapRoute("voor-huurders", "voor-huurders", new {controller = "Home", action = "VoorHuurders"})
            .SetRouteName("voor-huurders");
        routes.MapRoute("contact", "contact", new {controller = "Home", action = "Contact"}).SetRouteName("contact");
        routes.MapRoute("open-huis", "open-huis", new {controller = "Home", action = "OpenHuis"})
            .SetRouteName("open-huis");
        routes.MapRoute("werken-bij-stienstra", "werken-bij-stienstra",
            new {controller = "WerkenBijStienstra", action = "Index"}).SetRouteName("werken-bij-stienstra");
        routes.MapRoute("disclaimer", "disclaimer", new {controller = "Home", action = "Dislaimer"})
            .SetRouteName("disclaimer");
        routes.MapRoute("huurvoorwaarden", "huurvoorwaarden", new {controller = "Home", action = "Huurvoorwaarden"})
            .SetRouteName("huurvoorwaarden");
        routes.MapRoute("facebook", "facebook", new {controller = "Home", action = "Facebook"})
            .SetRouteName("facebook");

        // De routes voor recente nieuwbouw
        routes.MapRoute("recente-nieuwbouw", "nieuwbouw-te-huur", new {controller = "Nieuwbouw", action = "Index"});
        routes.MapRoute("recente-nieuwbouw-voordelen-van-huren", "nieuwbouw-te-huur/voordelen-van-huren",
            new {controller = "Nieuwbouw", action = "Page", id = 1});
        routes.MapRoute("recente-nieuwbouw-energiezuinig-wonen", "nieuwbouw-te-huur/energiezuinig-wonen",
            new {controller = "Nieuwbouw", action = "Page", id = 2});
        routes.MapRoute("recente-nieuwbouw-service-en-kwaliteit", "nieuwbouw-te-huur/service-en-kwaliteit",
            new {controller = "Nieuwbouw", action = "Page", id = 3});
        routes.MapRoute("recente-nieuwbouw-huurvoorwaarden", "nieuwbouw-te-huur/huurvoorwaarden",
            new {controller = "Nieuwbouw", action = "Page", id = 4});

        routes.MapRoute("mijn-woningen", "mijn-woningen", new {controller = "Home", action = "MijnWoningen"})
            .SetRouteName("mijn-woningen");

        // nieuwe SEO routes
        routes.MapRoute("koop-woning", "koop/{stad}",
            new {controller = "Woning", action = "WoningenIn", stad = UrlParameter.Optional, type = 1},
            new[] {"Stienstra.Controllers"});
        routes.MapRoute("huur-woning", "huur/{stad}",
            new {controller = "Woning", action = "WoningenIn", stad = UrlParameter.Optional, type = 2},
            new[] {"Stienstra.Controllers"});

        routes.MapRoute("project-detail", "nieuwbouw-te-huur/project/{plaats}/{projectnaam}/{projectnummer}",
            new {controller = "Nieuwbouw", action = "Project", projectnummer = typeof (string)});
        routes.MapRoute("print-project-detail",
            "nieuwbouw-te-huur/print-project/{plaats}/{projectnaam}/{projectnummer}",
            new {controller = "Nieuwbouw", action = "Print", projectnummer = typeof (string)});
        //afdrukken woning
        routes.MapRoute("print-woning-detail", "print-woning/{id}/{plaats}/{straat}/{huisnummer}",
            new {controller = "Woning", action = "Print"}, new[] {"Stienstra.Controllers"});


        routes.MapRoute("GetAlert", "Home/Alert/{email}/{code}",
            new {controller = "Home", action = "Alert", email = typeof (string), code = typeof (string)});

        routes.MapRoute("DeleteAlert", "Home/DeleteAlert/{email}/{code}",
            new {controller = "Home", action = "DeleteAlert", email = typeof (string), code = typeof (string)});

        routes.MapRoute("ParariusXml", "xml/pararius.xml", new {controller = "XmlSource", action = "Pararius"});

        routes.MapRoute("XML", "XmlSource/{action}", new {controller = "XmlSource", action = "Index"});

        var db = new DataClassesDataContext();

        routes.MapRoute("woning-route", "woning/{plaats}/{straat}/{huisnummer}",
            new
            {
                controller = "Home",
                action = "WoningDetails",
                plaats = typeof (string),
                straat = typeof (string),
                huisnummer = UrlParameter.Optional
            });

        IQueryable<string> plaatsen = (from p in db.Wonings select p.itemPlaats).Distinct();

        foreach (string plaats in plaatsen.Where(p => p != ""))
        {
            routes.MapRoute("Plaats" + plaats.Replace(" ", ""), plaats.Replace(" ", ""),
                new {controller = "Home", action = "Stad", stad = plaats});
        }

        routes.MapRoute("Beheer", "Beheer", new {controller = "Woning", action = "Index", area = "Beheer"});
        routes.MapRoute("BeheerZichtbaarheid", "Beheer/Woning/Visibility/{id}",
            new {controller = "Woning", action = "Visibility", id = UrlParameter.Optional, area = "Beheer"});

        routes.MapRoute("Paging", "{controller}/Woningen/{page}",
            new {controller = "Home", action = "Woningen", page = UrlParameter.Optional});
        routes.MapRoute("PlaatsenInDB", "Home/Plaatsen/{q}",
            new {controller = "Home", action = "Plaatsen", q = UrlParameter.Optional});
        routes.MapRoute("StratenInDB", "Home/Straten/{q}",
            new {controller = "Home", action = "Straten", q = UrlParameter.Optional});

        routes.MapRoute("Details", "Details/{id}", new {controller = "Home", action = "Details", id = typeof (long)});

        routes.MapRoute("RemoveFilters", "RemoveFilter/{filter}",
            new {controller = "Home", action = "RemoveFilter", filter = UrlParameter.Optional});

        routes.MapRoute("Provincies", "Provincie/{provincie}",
            new {controller = "Home", action = "Provincie", provincie = UrlParameter.Optional});

        routes.MapRoute("DeleteFromProfile", "MijnWoningen/Vergeet/{id}",
            new {controller = "Home", action = "Vergeet", id = UrlParameter.Optional});

        routes.MapRoute("OverzichtWoningen", "Woningen", new {controller = "Home", action = "Woningen"});

        routes.MapRoute("OverzichtWoningenOpenHuis", "OpenHuis", new {controller = "Home", action = "OpenHuis"});

        routes.MapRoute("Kaart", "Kaart", new {controller = "Home", action = "Kaart"});

        routes.MapRoute("KaartVanNederland", "KaartVanNederland",
            new {controller = "Home", action = "KaartVanNederland"});

        // maintenance *ALLEEN* voor homepage
        routes.MapRoute("logout", "uitloggen", new {controller = "Account", action = "LogOff"});


        // Digitaal Inschijfformulier voor huuraanvraag
        routes.MapRoute("InschrijvenOpslaan", "Inschrijven/Save", new {controller = "Inschrijven", action = "Save"});
        routes.MapRoute("InschrijvenOpgeslagen", "Inschrijven/Saved/{pandid}",
            new {controller = "Inschrijven", action = "Saved", pandid = UrlParameter.Optional});
        routes.MapRoute("Inschrijven", "Inschrijven/{pandid}",
            new {controller = "Inschrijven", action = "Index", pandid = UrlParameter.Optional});

        // Enquete, aantal dagen na invullen Digitaal Inschijfformulier voor huuraanvraag
        routes.MapRoute("EnqueteOpslaan", "Enquete/Save", new {controller = "Enquete", action = "Save"});
        routes.MapRoute("EnqueteOpgeslagen", "Enquete/Saved", new {controller = "Enquete", action = "Saved"});
        routes.MapRoute("Enquete", "Enquete/{pandid}",
            new {controller = "Enquete", action = "Index", pandid = UrlParameter.Optional});


        try
        {
            var settings = new AppSettingsReader();
            if (settings.GetValue("MaintenanceHomepageOnly", typeof (String)) != null)
                routes.MapRoute("MaintenanceHomepageOnly", "{controller}/{action}",
                    new {controller = "Home", action = "Maintenance"});
        }
        catch (Exception)
        {
        }

        routes.MapRoute(
            "DefaultWithId", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
            );


        // end routes
    }
}

}

问题似乎是服务器上的HTTP重定向配置。

如果您尝试这样的链接有效(请注意您网址中的www部分):

http://www.stienstra.nl/Enquete

您应该在服务器上检查HTTP重定向设置。 看一下这个 :

http://www.iis.net/configreference/system.webserver/httpredirect

并检查web.config文件中的元素httpRedirect。

暂无
暂无

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

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