首页 新闻 会员 周边

地址栏参数中包含 < > % 的问题~~急求~~

0
悬赏园豆:50 [已解决问题] 解决于 2012-09-25 18:29

使用mvc3.0 在地址栏传参数时若参数中包含尖括号 < > 和百分号 % 时出现404错误,求各位园友帮个忙,谢谢~~

url使用encodeURIComponent编码,下面是编码后的地址 http://localhost:4004/Manage/MyItemList/1/%25%2F0%2F0%2F4%2F0%2F2%2F(这个是%) http://localhost:4004/Manage/MyItemList/1/%3C%20%3E%2F0%2F0%2F4%2F0%2F2%2F(这个是 < > )

Server Error in '/' Application.

--------------------------------------------------------------------------------

HTTP Error 400 - Bad Request.

--------------------------------------------------------------------------------

Version Information: ASP.NET Development Server 10.0.0.0

CryBigSea的主页 CryBigSea | 初学一级 | 园豆:157
提问于:2012-09-25 15:14
< >
分享
最佳答案
0

写成这样:http://localhost:4004/Manage/MyItemList/1?value=%25%2F0%2F0%2F4%2F0%2F2%2F

 

你的Contorller映射是咋写的?

收获园豆:40
Launcher | 高人七级 |园豆:45045 | 2012-09-25 15:22

上面的路径不编码是下面这个样子,我要做的是一个查询功能,需要好多参数,并且地址的全部使用脚本处理。

http://localhost:4004/Manage/MyItemList/1/%3C/0/0/4/0/2/

routes.MapRoute(
     "RegisterCheck",

  “{controller}/{action}/{page}/{par1}/{par2}/{par3}/{par4}/{par5}/{par6}/{par7}/{par8}/{par9}/{par10}/{par11}",

  new
  {
    controller = "Register",
    action = "Check",
    page = UrlParameter.Optional,
    par1 = UrlParameter.Optional,
    par2 = UrlParameter.Optional,
    par3 = UrlParameter.Optional,
    par4 = UrlParameter.Optional,
    par5 = UrlParameter.Optional,
    par6 = UrlParameter.Optional,
    par7 = UrlParameter.Optional,
    par8 = UrlParameter.Optional,
    par9 = UrlParameter.Optional,
    par10 = UrlParameter.Optional,
    par11 = UrlParameter.Optional
  },
  new { page = @"\d*" }
);

CryBigSea | 园豆:157 (初学一级) | 2012-09-25 15:32

@CryBigSea: 我首先有个问题:

在IE中输入:http://localhost:4004/Manage/MyItemList/1/3C/0/0/4/0/2/ ,能找到路径吗?

在IE中输入:http://localhost:4004/Manage/MyItemList/1/<>3C/0/0/4/0/2/ ,能找到路径吗?

Launcher | 园豆:45045 (高人七级) | 2012-09-25 15:41

@Launcher: 

找不到~~

CryBigSea | 园豆:157 (初学一级) | 2012-09-25 15:59

@CryBigSea: 那不就得了,这还不到特殊字符的问题呢,你的路由映射都还没正确。

我劝你还是把你那一长串的可选路径改为参数形式吧:

http://localhost:4004/Manage/MyItemList?a=1&b=%3c&c=0&d=0&e=2

Launcher | 园豆:45045 (高人七级) | 2012-09-25 16:52

@Launcher: 

路由映射那里不正确的,可不可以帮我指出来一下啊~

这样改的话~我有好几百个页面要改啊~~T_T

非常谢谢你~~

CryBigSea | 园豆:157 (初学一级) | 2012-09-25 17:19
其他回答(1)
0

System.Web.HttpUtility.UrlEncode()

读取时System.Web.HttpUtility.UrlDecode()

收获园豆:10
田林九村 | 园豆:2367 (老鸟四级) | 2012-09-25 15:19

我想做的是一个查询的功能,地址全部用脚本拼接处理的。。。

支持(0) 反对(0) CryBigSea | 园豆:157 (初学一级) | 2012-09-25 15:37

@CryBigSea: 

哦,是js拼接的啊,那简单,下面的方法进行编码解码即可

function htmlEncode(value) {
    if (value) {
        return jQuery('<div />').text(value).html();
    } else {
        return '';
    }
}

function htmlDecode(value) {
    if (value) {
        return $('<div />').html(value).text();
    } else {
        return '';
    }
}

支持(0) 反对(0) 田林九村 | 园豆:2367 (老鸟四级) | 2012-09-25 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册