gpt4 book ai didi

asp.net - FriendlyURLs - RouteData 不返回任何值

转载 作者:行者123 更新时间:2023-12-02 00:45:52 26 4
gpt4 key购买 nike

我通过 NuGet 将 Microsoft.Asp.Net.FriendlyUrls.Core.dll 安装到现有的 asp.net 4.5 Webforms 网站。

我的 RouteConfig 文件中有以下内容

 public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);

routes.MapPageRoute("frUrl", "frurltest/{id}", "~/frurltest.aspx");
}
**Global.asax**
void Application_Start(object sender, EventArgs e)
{

RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}

在 frurltest.aspx 中,我尝试从 RouteData 获取“id”,如下所示:

string id = String.Empty;
if (RouteData.Values["id"] != null)
{
id = RouteData.Values["id"].ToString();
}

Response.Write("id= " + id);

使用以下网址:http://localhost:48484/frurltest/2

我没有得到“id”的值。 RouteData.Values.Count=0。

知道我在这里错过了什么吗?

注意:除了获取路由数据之外,友好的 url 功能正在运行,即假设我导航到/frutltest.aspx,它被更改为/frutlest,我可以使用 $RouteUrl 生成链接。

更新:经过反复试验,我注意到如果我将 EnableFriendlyUrls 移到 MapPageRoute 之后,它就会起作用。即

public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("frUrl", "frurltest/{id}", "~/frurltest.aspx");

var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}

我看到的所有示例都用作我最初的非工作代码。不知道为什么它对他们有用而不对我有用。这是一个类似的问题:RouteData.Values stays Empty

最佳答案

我知道现在回答已经太晚了,但对我来说,当我将 URL 的第一个子句更改为与 aspx 页面不同的内容时,它就起作用了。只是在 "frurltest/{id}""~/frurltest.aspx" 中,frurltest 应该不同,例如:routes .MapPageRoute("frUrl", "frurltestNEW/{id}", "~/frurltest.aspx");

关于asp.net - FriendlyURLs - RouteData 不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046377/

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