asp.net怎样在URL中使用中文、空格、特殊字符

本文详细介绍了在ASP.NET环境中,如何正确处理包含中文和特殊字符的链接参数,确保链接功能正常运行。通过使用HttpUtility.UrlEncode()函数,文章解决了中文参数在链接中的显示问题,并讨论了相关Action方法中参数处理的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在cshtml或aspx/ascx中制作链接时,若参数可能是中文,则需要使用HttpUtility.UrlEncode():

@Html.Link("角色", "/SFC/Users/Users2Roles?user=" + HttpUtility.UrlEncode(User.Identity.Name))

而在对应的Action中,一切照常,不需要"Decode”(也有帖子说需要,但本人实验的结果是不需要):

        public ActionResult Users2Roles(string user)
        {
            ViewBag.User = user;
            return View(SFCRoles.GetAllRoles());
        }
        [HttpPost]
        public ActionResult Users2Roles(string user, FormCollection collection)
        {
            ViewBag.User = user;

            try
            {
            }
        }


此外还能解决类似空格和特殊字符的问题,比如当你想让一个页面关闭后回到另外一个页面,而另外一个页面的链接中偏偏有两个以上参加就,因此里边有个“&”,就可以:使用:

 @Html.Link("x", "/SFC/Categories/Delete?rootID=" + root.ID + "&id=" + Model.ID, showInNewWindow:false, returnUrl: HttpUtility.UrlEncode(Request.Url.ToString()))

这个Html.Link是我自己编写的Helper,如果直接用a,也一样可以。

但是这么写来写去毕竟太长了太麻烦了,所以如果经常使用returnUrl请参考我另外一个帖子:http://blog.youkuaiyun.com/cheny_com/article/details/6544338 在最后几行2011-08-18的补充。两个问题居然碰到一起了。

可参考:

http://stackoverflow.com/questions/3101823/extract-chinese-text-from-query-string

http://stackoverflow.com/questions/1380617/request-url-parameter

http://stackoverflow.com/search?q=Chinese+Parameter+URL+asp.net (StackOverflow上面所有类似的问题) 

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值