1

我有这样的网址:/%20Account/%20LogOn?ReturnUrl=%2f+Admin%2f+Index

我有两个问题:

1)为什么我%20之前有AccountLogOn?是不是类似空间的东西?

2)如何删除%20之前AccountLogOn

也许路线有问题?

这是我的班级RegisterRoutes:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


        routes.MapRoute(
            null, 
            "", 
            new { controller = "Product", action = "List",category = (string)null,page=1 }) ;

        routes.MapRoute(null,
            "Page{page}", 
            new { controller = "Product", action = "List",category = (string)null });

        routes.MapRoute(
            null,
            "{category}",
            new { controller = "Product", action = "List", page = 1 });

        routes.MapRoute(
           null,
           "{category}/Page{page}",
           new { controller = "Product", action = "List"});

        routes.MapRoute(null, " {controller}/ {action}");

    }
4

4 回答 4

1

1) 为什么我在帐户和登录之前有 %20?是不是类似空间的东西?

这是因为 URL 字符串中有空格。这些被转换为编码字符串,同样是 %20

2)如何在账户和登录前删除%20?

您需要在 Account 和 LogOn 之前创建一个没有空格的链接。如果您使用 Html Helper 创建链接,您可能没有注意到操作字符串之前的空格。

于 2013-10-29T18:21:35.543 回答
1

因为您的网址包含单词之间的空格,

例如,当您在浏览器中输入此 (' somesite.com/something ') 地址时,您的浏览器会将该地址编码为'somesite.com/some%20thing'

然后解码你URL的代码,你可以使用Server.UrlDecode("someURL")

于 2013-10-29T17:03:14.370 回答
0

1) 那是编码的URL.

2)不确定您在什么情况下使用它,但您可以使用解码它Server.UrlDecode("string")

于 2013-10-29T17:04:27.670 回答
0

我在我的应用程序中遇到了类似的问题,其中 %20 出现在 url 的末尾。在传递所需的 ID 之前,我必须使用 .Trim() 来删除空格。

 @Html.ActionLink("Details", "Details", new { id = item.ID_NO.Trim()})

这解决了我的问题。

于 2020-01-31T21:30:49.710 回答