gpt4 book ai didi

asp.net - 如何使用带有查询字符串的路由 ASP.NET 4 WebForms?

转载 作者:行者123 更新时间:2023-12-02 14:34:27 25 4
gpt4 key购买 nike

首先,这不是 MVC,只是 WebForms..

我使用路由来保持我的网站向后兼容我们的客户,同时使我的项目井井有条。

我还在考虑将我们的加密查询字符串移动到更友好的 URL。这是如何工作的,我们的客户必须为一个巨大的加密网址添加书签,以防止他们通过更改 ID 来猜测我们的其他客户。

但是不想拥有这个巨大的网址,而是想为每个客户端添加一个像 LoginClientName.aspx 这样的路由,并对加密的查询字符串进行硬编码或可能在数据库中。

但没有找到向 MapPageRoute 添加查询的方法..

正在考虑这样的事情(知道这行不通)

routes.MapPageRoute("MapClient1", "LoginClient1.aspx", "Login.aspx?secure=mylongquerystring");routes.MapPageRoute("MapClient2", "LoginClient2.aspx", "Login.aspx?secure=differentmylongquerystring");

现在这会抛出异常,因为它不允许 ?在 url 中..有什么想法可以实现这一点吗?还是不可能?

最佳答案

看看这个:
http://msdn.microsoft.com/en-us/library/cc668177.aspx

基本上它的意思是:

void Application_Start(object sender, EventArgs e) 
{
RegisterRoutes(RouteTable.Routes);
}


然后:

void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("",
"SalesReport/{locale}/{year}/{*queryvalues}", "~/sales.aspx");

routes.MapPageRoute("SalesSummaryRoute",
"SalesReportSummary/{locale}", "~/sales.aspx");

routes.MapPageRoute("SalesDetailRoute",
"SalesReportDetail/{locale}/{year}/{*queryvalues}", "~/sales.aspx",
false);

...

routes.MapPageRoute("ExpenseDetailRoute",
"ExpenseReportDetail/{locale}/{year}/{*queryvalues}", "~/expenses.aspx",
false,
new RouteValueDictionary
{ { "locale", "US" }, { "year", DateTime.Now.Year.ToString() } },
new RouteValueDictionary
{ { "locale", "[a-z]{2}" }, { "year", @"\d{4}" } },
new RouteValueDictionary
{ { "account", "1234" }, { "subaccount", "5678" } });
}

关于asp.net - 如何使用带有查询字符串的路由 ASP.NET 4 WebForms?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938028/

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