Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net FriendlyURL-RoutedData不返回值_Asp.net_Asp.net Mvc_Friendly Url - Fatal编程技术网

Asp.net FriendlyURL-RoutedData不返回值

Asp.net FriendlyURL-RoutedData不返回值,asp.net,asp.net-mvc,friendly-url,Asp.net,Asp.net Mvc,Friendly Url,我通过NuGet将Microsoft.Asp.Net.FriendlyUrls.Core.dll安装到现有的Asp.Net 4.5 webforms网站 我在RouteConfig文件中有以下内容 public static void RegisterRoutes(RouteCollection routes) { var settings = new FriendlyUrlSettings(); settings.AutoRed

我通过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中,我尝试从RoutedData获取“id”,如下所示:

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

Response.Write("id= " + id);
使用以下url:
http://localhost:48484/frurltest/2

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

你知道我在这里遗漏了什么吗

注意:除了获取routedata外,友好的url功能正在发挥作用,例如,我导航到/FrutTest.aspx,它被更改为/frutlest,我可以使用$RouteUrl生成链接

更新: 在尝试和错误之后,我注意到如果我将EnableFriendlyURL移动到MapPageRoute之后,它就会工作。i、 e

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

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

我看到的所有示例都用作我的初始非工作代码。不知道为什么对他们有效,对我无效。这里有一个类似的问题:

我知道现在回答这个问题已经太迟了,但对我来说,当我将URL的第一个子句更改为与aspx页面不同的内容时,它起到了作用。
简单地说,在
“frurltest/{id}”和
“~/frurltest.aspx”
中,
frurltest
应该是不同的,例如:
routes.MapPageRoute(“frUrl”,“frurltestNEW/{id}”和“~/frurltest.aspx”)

响应。写下
,这是经典时代以来从未见过的!当标签成为问题短语的自然组成部分时,我们通常不会将其从标题中删除。。。我们将标签从标题中删除,当它们简单地钉在开头或结尾时。@ErikPhilips,我的理解是这样的。。允许使用“asp.net中的FriendlyURL…”吗?如果标签自然是问题的一部分,通常可以在标题中使用标签。例如
在实体框架中为我的模型创建关系?
。通常不被接受的是这样的问题,即标签仅仅被扔到乞讨或结束的地方,移除标签不会改变句子的问题。例如,
实体框架-为我的模型创建关系
。有同样的问题…这真的很奇怪。谢谢你的解决方案:)我今天也发现了这一点,我不敢相信如果路由的第一部分与物理页面相同,路由引擎就会崩溃。很烦人。很高兴你找到了答案。@Yasin即使这不应该发生(但不幸的是它发生了!)正确的答案是EnableFriendlyURL应该移动到MapPageRoute行之后。