gpt4 book ai didi

asp.net - 知道当前 url 是否包含在 RouteTable.Routes 中

转载 作者:行者123 更新时间:2023-12-03 17:33:28 27 4
gpt4 key购买 nike

在我的 Global.asax 我有这些规则

    protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.EnableFriendlyUrls();
RouteTable.Routes.MapPageRoute("", "Home", "~/Default.aspx");
RouteTable.Routes.MapPageRoute("", "Carrello", "~/Carrello.aspx");
RouteTable.Routes.MapPageRoute("", "Checkout", "~/Checkout2.aspx");
RouteTable.Routes.MapPageRoute("", "Ricerca-Prodotto/{Filtri}/{Pagina}", "~/ProductsSearch.aspx");
RouteTable.Routes.MapPageRoute("", "Prodotto/{ProductId}", "~/Product.aspx");
RouteTable.Routes.MapPageRoute("", "Prodotti/{Menu}/{Marca}/{Categoria}/{Pagina}", "~/Product.aspx");

}

我也有 UrlRewrite 来管理
    protected void Application_BeginRequest(object sender, EventArgs e)
{
System.Collections.Generic.List<Rewrite> rewrites = Rewrite.getRules();
String fullOriginalPath = Request.Url.ToString();
int index = 0;
if(fullOriginalPath.Contains("www."))
index = fullOriginalPath.IndexOf('/', fullOriginalPath.IndexOf("e-miko.com")) + 1;
else
index = fullOriginalPath.IndexOf('/', fullOriginalPath.IndexOf("localhost")) + 1;

string chiave = fullOriginalPath.Substring(index);

Utility.WriteToLog(chiave);

foreach (Rewrite r in rewrites)
{
if(r.Chiave == chiave)
{
string url = "/" + r.Pagina;
if (r.Param1 != null)
url += "/" + r.Param1;
if (r.Param2 != null)
url += "/" + r.Param2;
if (r.Param3 != null)
url += "/" + r.Param3;
if (r.Param4 != null)
url += "/" + r.Param4;
if (r.Param5 != null)
url += "/" + r.Param5;
Context.RewritePath(url);
}
}

}

我也尝试将此行放在 web.config 中
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/PageNotFound.aspx" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" path="/PageNotFound.aspx" responseMode="ExecuteURL" />

但是我所有带有 urlRewrite 的页面都在 PageNotFound.aspx 中

如果当前 Url 不包含在这些规则中,是否有办法将用户重定向到主页?
例如,如果当前 url 是/CheckoutError,我如何将用户重定向到/Home?

谢谢

最佳答案

你的问题是重复的

asp.net 4.0 web forms routing - default/wildcard route

您只需要

RouteTable.Routes.MapPageRoute("defaultRoute", "{*value}", "~/Home.aspx");

关于asp.net - 知道当前 url 是否包含在 RouteTable.Routes 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50427123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com