%20 在我的 ASP.Net MVC 中的 URL 中
本文关键字:中的 URL MVC Net 我的 ASP | 更新日期: 2023-09-27 18:37:15
>我有这样的网址:/%20Account/%20LogOn?ReturnUrl=%2f+Admin%2f+Index
我有两个问题:
1)为什么我在Account
和LogOn
之前有%20
?是不是有点像空间?
2)如何在Account
和LogOn
之前去除%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}");
}
因为您的网址在单词之间包含空格,
例如,当您在浏览器中输入此("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()})
这解决了我的问题。