请问大家在做WEB项目的时候,有没有发现,当我们访问一个参数据比较多的页面的时候,url的参数据会在浏览器的URL地址栏内显示的很乱,如:
http://a.aspx?a=11&b=222&c=333&d=.........
虽然说大部份用户都不会在呼URL内的参数据意思,但是小部份用户还是关心URL里面的内容。所以请教大家有没有忧化URL的方法,比如只显示a.aspx ,然后其它的参数据使用JSON或者其它方法隐式的传递
不知道大家没有办法,特上来征求大家的意见和想法,希望大家能指点个思路
在项目下建一个全局应用程序类,在Application_BeginRequest()事件中来实现URL重写,通过Request.AppRelativeCurrentExecutionFilePath拿到你要请求的页面路径,然后用正则表达式进行匹配,
string url = Request.AppRelativeCurrentExecutionFilePath; Match match = Regex.Match(url,@"~/View-(\d+)\.aspx"); if(match.Success) { string id = match.Groups[1].Value; Context.RewritePath("~/ViewArticle.aspx?id="+id) ; }
通过这种方式即可实现URL重写,用户看到的是View-1.aspx,但实际请求的是另一个页面。
....传值方式有3种,你不喜欢querystring可以换post或者cookie
用WebForm的话,还要参数名与值对应,真的不好。
用Asp.Net Mvc就可以很优雅的解决了这个问题,经常在门户网里看到,比如:
http://list.jd.com/737-794-880-0-0-0-0-0-0-0-1-1-1-1-1-72-4137-33.html
如果隐式,可以post,也就是表单提交,但如果把参数放入cookie来传递,那真不好。
这用一个常面试的题目回答最好了 常用的页面传值方式有几种
Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,这也算一种思路。