我有这样的网址:/%20Account/%20LogOn?ReturnUrl=%2f+Admin%2f+Index
我有两个问题:
1)为什么我%20
和Account
之前有LogOn
?它有点像空格吗?
2)如何在%20
和Account
之前删除LogOn
?
路线可能有问题吗?
这是我的课程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}");
}
答案 0 :(得分:1)
因为您的网址在字词之间包含空格,
例如,当您在浏览器中输入此地址(' somesite.com/some thing ')时,您的浏览器会将该地址编码为'somesite.com/some%20thing'< /强>
然后在后面的代码中解码您的URL
,您可以使用Server.UrlDecode("someURL")
答案 1 :(得分:1)
1)为什么我在Account和LogOn之前有%20?是这样的吗? 空间?
这是因为您在URL字符串中有空格。那些被转换成编码的字符串,对于相同的是%20
2)如何在Account和LogOn之前删除%20?
您需要在Account和LogOn之前创建一个没有空格的链接。如果您使用Html Helper创建链接,则可能在操作字符串之前没有注意到空格。
答案 2 :(得分:0)
1)这是编码的URL
。
2)不确定您使用它的上下文,但您可以使用Server.UrlDecode("string")
答案 3 :(得分:0)
我的应用程序中有一个类似的问题,其中%20出现在URL的末尾。我必须使用.Trim()才能删除空间,然后再传递所需的ID。
ruby
这解决了我的问题。