%20 在我的 ASP.Net MVC 中的 URL 中

本文关键字:中的 URL MVC Net 我的 ASP | 更新日期: 2023-09-27 18:37:15

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

我有两个问题:

1)为什么我在AccountLogOn之前有%20?是不是有点像空间?

2)如何在AccountLogOn之前去除%20

也许路线有问题?

这是我的类注册路线:

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}");
    }

%20 在我的 ASP.Net MVC 中的 URL 中

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

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

然后,要在代码隐藏中解码URL,您可以使用Server.UrlDecode("someURL")

1)为什么我在帐户和登录之前有 %20?是不是像 空间?

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

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

您需要在帐户和登录之前创建一个不带空格的链接。如果使用 Html 帮助程序创建链接,则可能没有注意到操作字符串前的空格。

1) 这是编码URL

2)不确定你在什么上下文中使用它,但你可以使用Server.UrlDecode("string")解码它

我的应用程序中遇到了类似的问题,其中 %20 出现在 url 的末尾。我不得不使用.Trim() 以便在我传入所需的 id 之前删除空格。

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

这解决了我的问题。